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