Re: Why can't lseek the STDIN_FILENO?

From: John McKown <john(dot)archie(dot)mckown(at)gmail(dot)com>
To:
Cc: pgsql-general <pgsql-general(at)lists(dot)postgresql(dot)org>
Subject: Re: Why can't lseek the STDIN_FILENO?
Date: 2023-06-24 03:02:06
Message-ID: CAAJSdjiETS2skporc3xWMU2geHgTiu5PSx3K6ovgJhJ+gpwYrw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

My best advice would be to ask a C language question on a C language forum.
This forum is really only for questions about the SQL language for the
PostgreSQL database. I.e. no MariaDB, MySQL, MS SQL questions.

First, you didn't say what OS and she'll you're using. I an guessing BASH
and Linux.

Second, you did NO error checking. I would purely guess that the lseek() is
getting a return value of -1, probably with an error of ESPIPE.

This is probably a better explanation:
https://unix.stackexchange.com/questions/502518/problems-when-test-whether-standard-input-is-capable-of-seeking

The bottom line from the above post is that STDIN is not seekable when it
is a terminal.

On Fri, Jun 23, 2023, 21:17 Wen Yi <896634148(at)qq(dot)com> wrote:

> Hi community,
> I am testing the lseek & write & read, and I write the code like this:
>
> /*
> lseek_test.c
> Test the lseek
> Wen Yi
> */
> #include <unistd.h>
> #include <fcntl.h>
> int main()
> {
> int fd = 0;
> char buffer[16] = {};
> write(STDIN_FILENO, "Hello world\n", sizeof("Hello world\n"));
> lseek(STDIN_FILENO, 0, SEEK_SET);
> read(STDIN_FILENO, buffer, sizeof(buffer));
> write(STDIN_FILENO, buffer, sizeof(buffer));
> return 0;
> }
>
> And I run the program ("Something Input" is my input content)
>
> [beginnerc(at)bogon 学习 C语言]$ gcc lseek_test.c
> [beginnerc(at)bogon 学习 C语言]$ ./a.out
> Hello world
> Something Input
> Something Input
> [beginnerc(at)bogon 学习 C语言]$
>
> I really don't know, why the buffer's content not be "Hello world\n"? (I
> use the lseek to move the cursor to the beginning region)
>
> Can someone give me some advice?
> Thanks in advance!
>
> Yours,
> Wen Yi
>

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Avin Kavish 2023-06-24 12:35:45 Accessing referential constraint information with minimal permissions
Previous Message Tom Lane 2023-06-24 02:40:05 Re: Why can't lseek the STDIN_FILENO?