c-使用打开的文件描述符



我有两个程序,其中一个程序打开一个文件进行读取,另一个程序则试图从文件中读取:

第一程序

fd = open("test.txt",O_RDONLY);
printf("%dn",fd);
while(1);

第二个程序:

char sir[100];
int fd, result;
scanf("%d",&fd);
rez = read(fd,((void*)sir), 2);

在第二个程序中,我阅读了我在第一个程序中打印的内容。为什么这个代码不起作用,我如何从程序nr 2的文件描述符中读取?

文件描述符对于进程是唯一的。此外,您还需要写入文件描述符。

有几个问题:

  • fd = open("test.txt", O_RDONLY)打开文件进行读取。如果我理解你想做什么,你就想创建文件并打开它进行写作。那将是fd = open("test.txt", O_CREAT | O_WRONLY)
  • printf("%dn",fd)显示文件句柄的值。虽然这可能对调试很有用,但我认为您需要写入文件句柄的内容。CCD_ 4更接近于此
  • while(1);是一个无限的CPU繁忙循环。这不是很有用

类似地,第二个程序也有问题:

  • CCD_ 6具有特殊性。我想你想打开刚写的文件,不是吗?相反,fd = open("test.txt", O_RDONLY)
  • 经过校正后,程序可以将内容读取到变量read (fd, sir, sizeof sir)

看看这些对你有没有帮助。

如果您不是主要处理文件中的二进制数据,那么fopen()fprintf()库调用会更方便。

相关内容

  • 没有找到相关文章

最新更新