我创建了这个程序,它应该复制文件,就像 UNIX 中的 cp 命令一样,只是我的代码复制不带参数。我已经检查了我的程序多次,但无法找出问题所在。编译没有错误,运行也没有错误,但是运行程序后输出文件中没有任何文本。
最佳答案
open()
系统调用返回一个文件描述符,它可能不是1,所以你的终止条件,
while(infile==1){
完全是假的。您应该测试 read()
是否调用读取任何输入(返回值是读取的字节数,当到达文件末尾时为零。)请阅读read手册页...双关语:-)
更重要的是,if (rr = 1)
是一个始终为真的赋值。您应该使用==
进行比较。
哦,exit(-1)/return(-1) 是错误的(至少在 Unix 下返回值是从 0 到 127)。程序通过返回 1 或 EXIT_FAILURE
来指示失败来自<stdlib.h>
.
关于具有 cp 命令功能的 C 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26363965/