使用Read()的低级I / O

时间:2013-11-13 01:32:47

标签: c io

我想在 C 中首次使用read()功能:

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是我正在编写的当前打开的文件。出于某种原因,此循环永远不会结束 我试图读取目录中的文件,直到文件结束,并写入我抓到另一个文件。 (存档)。

2 个答案:

答案 0 :(得分:1)

您不会进行错误检查,这会诊断您的问题。将file2p作为-1进行测试,并返回read(2)的返回值。

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

答案 1 :(得分: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);