int fd1, fd2[2], i, tmp;
char c;
int offset, n;
fd1 = open(argv[1], 0400);
fd2[0] = mkdir("~/Assignment", S_IRUSR | S_IWUSR);
fd2[1] = creat(argv[2], 0670);
pipe(fd2);
offset = lseek(fd1, (off_t)0, SEEK_END);
for(i = offset-1; i>=0; i--)
{
lseek(fd1, (off_t) i, SEEK_SET);
n = read(fd1, &c, 1);
n = write(fd2[1], &c, 1);
}
我需要打开一个新目录,从而打开一个新文件,并将 file1 的内容以相反的顺序复制到新文件中。当我从命令行获取文件名作为参数时。发生了两件事:
- 起初它无法识别文件格式并向我抛出此错误: 无法识别文件格式;视为链接描述文件
- 接下来我添加了标志“-o”,然后尝试编译,现在没有可以执行的a.out文件。
我应该如何在命令行中使用两个 .txt 文件作为参数来编译我的程序?
编辑:我终于可以解决它了。我在编译时给出了参数。当你在运行时给予它时它工作得很好。即:./a.out txt1 txt2
最佳答案
你已经写过你正在这样编译
gcc prog.c arg1 arg2
但首先您必须将 .c
编译为 binary
,然后将 args 传递给创建的二进制文件。
示例
gcc -std=c99 -pedantic -Wall -Wextra -c prog.c -o prog
./prog arg1 arg2
关于c - 如何编译一个带有两个txt文件作为命令行参数的c程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45657728/