c - 为什么'wait'函数总是返回-1?
问题描述
我不明白为什么函数等待总是返回 -1 而不是子进程 pid
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main (void) {
pid_t pid;
int status;
pid = fork ();
if (pid < 0) {
perror("fork");
exit(2);
}
if ( pid == 0 ) {
printf ("I am the child\n");
exit(0);
}
else if(pid > 0){
printf ("I am the parent, i'll wait\n");
pid = wait(&status);
printf ("I waited the child: %d\n"
, pid);
}
exit(0);
}
预期“我等了孩子:1234”实际“我等了孩子:-1”
解决方案
头文件:unistd.h
不包含wait()
.
该原型通过头文件组合公开:
#include <sys/types.h>
#include <sys/wait.h>`
推荐阅读
- powerbi - Power BI Violin Chart - tooltip identifying name
- sql-server-2008-r2 - High execution per minute in SQL Server can cause time out?
- javascript - Compare user input to multiple arrays in JavaScript
- python - ValueError: Input 0 of layer sequential_5 is incompatible with the layer
- html - 内容超出其 td 边界 - html 表格问题
- regex - 数组数字顺序的正则表达式
- python - 评估后如何在python的循环中移动部分数据
- javascript - 在这个多重 promise.then() 条件下,调度竞争真的存在吗?
- swift - 使用 NSFetchedResultsController (Swift) 移动行
- c++ - 当我给 char 指针提供一个字符串时,Visual Studio 给我一个错误