0

read_from_fdを複数回呼び出すと、データが空になることが発生しています。

#include <fcntl.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>

int fd;

void read_from_fd() {
    char data[2];

    read(fd, data, 1);

    data[1] = 0x00;

    printf("data %s\n", data);
}

int main(void) {
    fd = open("test.txt", O_RDWR);

    read_from_fd();
    read_from_fd();
    read_from_fd();
}

したがって、最初の読み取りではデータが出力されますが、2 番目と 3 番目の読み取りでは空のものが出力されます。

これはcharからのメモリで何かをしなければならないと思います。これは正しいです?これを修正するにはどうすればよいですか?

ボードー

4

2 に答える 2

0

opengroupによると、同じパイプ、FIFO、または端末デバイスでの複数の同時読み取りの動作は規定されていません。

于 2013-06-19T06:52:14.683 に答える