Ree*_*ges 6 linux fork system process
如何判断是否有任何一个出现,并导致fork()或system()返回错误?换句话说,如果fork()或system()返回错误,我可以检查Linux中的哪些东西来诊断为什么会发生特定错误?
例如:
怎么能弄清楚它们中是否有任何一个出现?
如果结果(返回值)为-1,请检查errno值
从Linux上的手册页:
返回值
成功时,父进程返回子进程的PID,并在子进程中返回0.失败时,在父项中返回-1,不创建子进程,并正确设置errno.错误
EAGAIN
fork()无法分配足够的内存来复制父页面表并为子项分配任务结构.
EAGAIN
由于遇到调用者的RLIMIT_NPROC资源限制,因此无法创建新进程.要超过此限制,进程必须具有CAP_SYS_ADMIN或CAP_SYS_RESOURCE功能. 由于内存紧张,
ENOMEM
fork()无法分配必要的内核结构.符合SVr4,4.3BSD,POSIX.1-2001.