0

read()第一次尝试在C中使用该函数:

int file2p = open(curFilePath, O_RDONLY, 0);
char* buffer = NULL;
  while(read(file2p, buffer, sizeof(char*)) != 0){                 
            write(filep, buffer, sizeof(char*));
  }
close(file2p); 

filep是我正在写的当前打开的文件。由于某种原因,这个循环永远不会结束。我正在尝试读取目录中的文件直到文件结束,然后将我抓取的内容写入另一个文件。(档案)。

4

2 回答 2

1

您不进行错误检查,这将诊断您的问题。测试file2p存在-1,除此之外的返回值read(2)

正如其他人所说,使用有效的缓冲区来存储输入。:)

于 2013-11-13T01:36:35.823 回答
1

您认为这些数据将放在地球上的什么地方?

将缓冲区设置为 NULL

读取了字符指针的大小。

为什么不做

int file2p = open(curFilePath, O_RDONLY, 0);
char buffer[1024];
int len;
  while((len = read(file2p, buffer, 1024)) != 0){                 
            write(filep, buffer, len);
  }

close(file2p); 
于 2013-11-13T01:39:49.970 回答