关于linux shell的函数和C的functions()的关系

han*_*eng 3 c c++ linux shell

比如我以为shell中的ln命令是由C提供的link()和symlink()实现的,于是查了一下ln的src,好像没有用到。

pau*_*sm4 5

是的,许多 Linux 命令是用 C 编写的;许多这些 C 程序可能会使用 C 库函数,如link()symlink()。各种 Linux shell(例如 sh、csh 和 bash)本身都是用 C 编写的,并且也使用 C 库调用。

然而...

link() 和 symlink() 都是符合 POSIX 的包装函数,它们不是“标准 C 库”的一部分。因此,“ln”命令不使用它们。有关更多详细信息,请参阅unistd.h

另请参阅C 标准库中包含的内容