
linux环境编程
红莲之殇
一个简单的iter
展开
-
vfork函数
#include <stdio.h>#include <stdlib.h>#include <unistd.h>/* vfork和fork的区别: 1.vfork创建的子进程和父进程共享线性地址空间;fork创建的子进程具有独立的线性地址空间 2.vfork先执行子进程;fork子进程和父进程的执行顺序是随机的 3.vfork创建的子进程原创 2016-03-17 17:12:40 · 409 阅读 · 0 评论 -
通过execve在两个进程间传递环境变量
进程1:execve 进程2:hello execve.h 的代码如下:#include <stdio.h>#include <stdlib.h>#include <unistd.h>/* #include <unistd.h> execve是系统调用,下面的函数是execve的库函数 extern char **environ; int execl(c原创 2016-03-17 19:35:55 · 2754 阅读 · 0 评论 -
fork函数01
#include <stdlib.h>#include <stdio.h>#include <string.h>#include <signal.h>#include <errno.h>int main(void){ pid_t fpid; // pid_t-->unsigned int int count = 0; fpid = fork(); // 错误原创 2016-03-17 15:27:59 · 263 阅读 · 0 评论 -
fork函数02
#include <stdio.h>#include <stdlib.h>#include <unistd.h>// 创建procnum个子进程,每个进程循环loopnum次int main(void){ int procnum = 0, loopnum = 0; int i = 0, j = 0; pid_t fpid; printf("procnum: ")原创 2016-03-17 19:52:46 · 248 阅读 · 0 评论 -
wait如何处理多进程(多个子进程)
#include <stdio.h>#include <stdlib.h>#include <unistd.h>/* linux 系统调用 wait() * 当用fork()创建子进程,子进程在退出后父进程没有调用wait * 就会产生僵尸进程. * * 下面是用fork循环创建多个子进程,在父进程里调用一次wait * 只能回收一个子进程. * * 下面展示如何用wait()回原创 2016-03-20 15:39:58 · 4880 阅读 · 0 评论 -
信号发送(sigqueue)和接收(sigaction)
#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <signal.h>void handle(int signum, siginfo_t *info, void *p);int main(void){ pid_t fpid; union sigval value; // 待发送的附加信息原创 2016-03-23 13:40:14 · 1820 阅读 · 0 评论 -
可靠信号和不可靠信号的测试
#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <signal.h>/* 1. 创建子进程和父进程 2. 注册 SIGINT 非实时信号 SIGRTMIN 实时信号,添加到进程阻塞中 3. 注册用户自定义信号 SIGQUIT 4. 子进程发送3次非实时信号,发3次实时信号原创 2016-03-23 21:13:17 · 561 阅读 · 0 评论