/*
 * call-seq:
 *
 *      Kgio.trypeek(socket, maxlen)           ->  buffer
 *      Kgio.trypeek(socket, maxlen, buffer)   ->  buffer
 *
 * Like Kgio.tryread, except it uses MSG_PEEK so it does not drain the
 * socket buffer.  This can only be used on sockets and not pipe objects.
 * Maybe used in place of SocketMethods#kgio_trypeek for non-Kgio objects
 */
static VALUE s_trypeek(int argc, VALUE *argv, VALUE mod)
{
        if (argc <= 1)
                rb_raise(rb_eArgError, "wrong number of arguments");
        return my_peek(0, argc - 1, &argv[1], argv[0]);
}