具有 cp 命令功能的 C 程序

标签 c unix cp

我创建了这个程序,它应该复制文件,就像 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/

相关文章:

c - 如何用C画一个椭圆?

c - 为什么我这里没有错误?

linux - 在 bash 中创建临时文件

linux - 在 Linux 上复制 N 天前的文件

linux - 使用 bazel 中的 genrule 将多个文件复制到多个文件夹中

c - 求给定字符串中数字的总和

c - 函数参数和参数中的隐式指针转换

sockets - Nginx connect() 到 unix :/var/run/fcgiwrap. 套接字失败

apache2 - 无法将文件夹复制到/var/www/html/使用 cp 命令

c - C 中 pthread 的竞争条件