我创建了这个应该复制文件的程序,就像cp命令在UNIX中一样,除了没有参数的代码副本。我已多次检查我的程序,但无法弄清楚问题。它编译时没有错误,运行没有错误,但输出文件在运行程序后没有任何文本。
答案 0 :(得分:4)
open()
系统调用返回文件描述符,该描述符可能不是1,因此终止条件
while(infile==1){
完全是虚假的。您应该测试read()
调用是否读取任何输入(返回值是读取的字节数,当它到达文件结尾时为零。)请阅读 read man页面...双关语: - )
更重要的是,if (rr = 1)
是一项永远正确的任务。您应该使用==
进行比较。
哦,退出(-1)/ return(-1)是错误的(至少Unix下的返回值是0到127)。程序通过从EXIT_FAILURE
返回1或<stdlib.h>
来表示失败。