c - 如何编译一个带有两个txt文件作为命令行参数的c程序?

标签 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文件。

我应该如何在命令行中使用两个 .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/

相关文章:

C 格式说明符大小

c++ - 如何在满足条件时在eclipse中停止执行

c - 如何使用 clang 的 -fsanitize=address 在调试输出中获取行号?

c - 除非初始化 SDL_INIT_GAMECONTROLLER 子系统,否则 SDL2 将不会运行 (WINDOWS 10)

c++ - 为什么 Win32 API 中不使用标准数据类型?

c - 从 opencv 图像打印像素值到屏幕

c - 尽管在 c 中给出了引用,但对函数的 undefined reference

iphone - Objective C 方法和语法

c - 尝试打印二维数组时程序崩溃

c - 是否可以确定字符串是否为 "read-only"?