我有一个用C编写的小程序,用于通过将两个文件作为命令行参数传递来将一个文件复制到另一个文件中。
如果我尝试在Product-> Scheme-> Edit scheme下的Xcode(版本10)中进行设置,则该程序将终止,因为open(const char * pathname,int oflag,...)返回-1,这意味着它无法打开文件。
但是,如果我重复相同的过程,并且通过终端编译并运行代码,则程序将执行一个文件的内容并将其复制到另一个文件中。
引发错误的代码:
if ((fd = open(filename, O_RDONLY)) == -1) {
//Result is -1, so it throws error
}
我尝试打印参数,以查看它们是否确实与printf("%s %s", argv[1], argv[2]);
一起使用,并且输出看起来不错。
如果我使用
通过命令行运行程序,./test input.txt output.txt
一切正常。