-1 是出现错误的返回值,我就不说了。
0 只有当你的 waitpid 第三个参数包含 WNOHANG 的时候才有可能。
比如
pid = fork();
if (pid == 0) {
//child process
while(1) {
printf("aaa\n");
sleep(1);
}
} else {
// parent
option = 0;
result = waitpid(pid, NULL, option);
。。。。。
}
上面的代码,由于子进程永远不会结束(除非它被kill),父进程会一直停在 waitpid 那个系统调用,等待子进程结束 (当子进程结束后, waitpid 的返回值等于子进程 pid)。
但是如果 option=WNOHANG; 父进程不会停在 waitpid 那里, waitpid 会立刻返回 0 ,表示被等待的子进程并没有结束。
函数说明 system()会调用fork()产生子进程,由子进程来调用/bin/sh -c string来执行参数string字符串所代表的命令,此命令执行完后随即返回原调用的进程。 返回值 =-1: 出现错误 =0: 调用成功但是没有出现子进程 >0: 成功退出的子进程的id 如果s
int socket;domain指明所使用的协议族,通常为PF_INET,表示互联网协议族;type参数指定socket的类型:SOCK_STREAM 或SOCK_DGRAM,Socket接口还定义了原始Socket,允许程序使用低层协议;protocol通常赋值"0"。
Socket()调用返回一个整型socket描述符,你可以在后面的调用使用它。 Socket描述符是一个指向内部数据结构的指针,它指向描述符表入口。
调用Socket函数时,socket执行体将建立一个Socket,实际上"建立一个Socket"意味着为一个Socket数据结构分配存储空间。 Socket执行体为你管理描述符表。
扩展资料:
支持下述类型描述:
SOCK_STREAM 提供有序的、可靠的、双向的和基于连接的字节流,使用带外数据传送机制,为Internet地址族使用TCP。
SOCK_DGRAM 支持无连接的、不可靠的和使用固定大小(通常很小)缓冲区的数据报服务,为Internet地址族使用UDP。
SOCK_STREAM类型的套接口为全双向的字节流。对于流类套接口,在接收或发送数据前必需处于已连接状态。用connect()调用建立与另一套接口的连接,连接成功后,即可用send()和recv()传送数据。当会话结束后,调用close()。带外数据根据规定用send()和recv()来接收。
参考资料来源:百度百科-socket函数
以上就是关于linux 中的waitpid函数的返回值问题全部的内容,包括:linux 中的waitpid函数的返回值问题、linux 怎么得到system调用返回值、linux下 socket函数的返回值代表什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)