如何使用两个txt文件作为命令行参数编译c程序?

时间:2017-08-13 06:23:46

标签: c

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的内容复制到新文件中。当我从命令行获取文件名作为参数时。发生了两件事:

  1. 起初它无法识别文件格式并将此错误扔给我: 文件格式无法识别;作为链接描述文件处理
  2. 接下来我添加了标志“-o”然后尝试编译,现在没有我可以执行的a.out文件。
  3. 如何在命令行中使用两个.txt文件作为参数编译我的程序?

    编辑:我终于可以解决了。我在编译时给出了参数。在运行期间提供它时,它可以正常工作。即:./a.out txt1 txt2

1 个答案:

答案 0 :(得分:1)

您已经写过要编译的内容

gcc prog.c arg1 arg2

但首先你需要将.c编译为binary,然后将args传递给创建的二进制文件。

示例

gcc -std=c99 -pedantic -Wall -Wextra -c prog.c -o prog
./prog arg1 arg2