具有cp命令功能的C程序

时间:2014-10-14 14:56:54

标签: c unix cp

我创建了这个应该复制文件的程序,就像cp命令在UNIX中一样,除了没有参数的代码副本。我已多次检查我的程序,但无法弄清楚问题。它编译时没有错误,运行没有错误,但输出文件在运行程序后没有任何文本。

1 个答案:

答案 0 :(得分:4)

open()系统调用返回文件描述符,该描述符可能不是1,因此终止条件

 while(infile==1){

完全是虚假的。您应该测试read()调用是否读取任何输入(返回值是读取的字节数,当它到达文件结尾时为零。)请阅读 read man页面...双关语: - )

更重要的是,if (rr = 1)是一项永远正确的任务。您应该使用==进行比较。

哦,退出(-1)/ return(-1)是错误的(至少Unix下的返回值是0到127)。程序通过从EXIT_FAILURE返回1或<stdlib.h>来表示失败。