使用带有数值的系统调用有什么意义?

What is the significant of using system calls with a numeric value?

我想知道使用带有数值的系统调用是否有任何意义?
例如 wait(4)exit(3)。我希望 link 能得到这些的一些文档或解释。

您将在手册页中找到最佳答案。对于 exit() - 有一个简单的目的 - 它指示 exit_code,所以方便的是 exit(0) 代表脚本的正常完成,所有其他值表示不同的错误。

如果您看到命令、函数或系统调用的名称后跟括号中的一位数字,通常是指可以在其中找到手册页的部分。

我怀疑您实际上看到的是 wait(2)exit(3)

例如,rm(1) 指第 1 节(用户命令)中 rm 命令的手册页,wait(2) 指第 1 节(用户命令)的手册页wait 系统调用,在第 2 节(系统调用)中。

引用要传递的参数。

阅读手册页时,您将键入:

man 2 wait

或者,在某些系统上:

man -s 2 wait

指定您想要的部分。这通常不是必需的,但如果同一名称出现在多个部分中,这可能很重要——例如 printf(1) 命令和 printf(3) 函数。

键入 man man 以查看部分列表:

  1. 可执行程序或shell命令
  2. 系统调用(内核提供的函数)
  3. 库调用(程序库中的函数)

等等

如果您想了解特定函数的参数,请阅读该函数的手册页。 (例如,wait() 接受一个 int* 参数,而不是一个整数,并且 returns 一个 pid_t 结果。)