我正在实现一个简单的shell,我试图使用系统调用“open”并使用“dub2”系统调用复制文件描述符。当我编译时,我总是得到:

undefined reference to `dub2'
collect2: error: ld returned 1 exit status

代码如下:
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>

int main()
{

  //input line would be "ls > testfile.txt"

  char* input1 = "ls";
  char* input2 = ">";
  char* input3 = "testfile.txt";

  int f = open(input3, O_WRONLY|O_CREAT|O_TRUNC, 0666);
  dub2(f, 1);     //1(stdout)

  return 0;
}

最佳答案

你拼错了函数名。
它是dup2,而不是dub2

关于c - 使用dub2()将输出重定向到文件:未定义对`dub2'的引用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22674877/

10-09 13:42