Chinaunix首页 | 论坛 | 博客
  • 博客访问: 69698
  • 博文数量: 72
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 12
  • 用 户 组: 普通用户
  • 注册时间: 2014-12-04 23:21
文章分类
文章存档

2015年(72)

我的朋友

分类: 嵌入式

2015-04-15 10:50:32

原文地址:1.进程 作者:lingyunwmr

1.exec家族函数  执行exec后关闭了原进程,以新程序取代原来的进程,系统从新进程运行 ,新进程的PID和原进程一样。
2.fork   创建一个子进程 ,新进程继承了父进程的一切,子进程中返回0,父进程返回子进程的PID,子进程会有一个新的PID
3. system       有三个系统调用  一是 用fork建立一个子进程  二是用execve 调用默认环境变量中执行 传入参数  三是  执行  waitpid
4.     pd=fork   
         count++
  printf("%d",count);  输出  count=1  count=1
 
5.vfork  与  fork 的区别
 
 一    fork  子进程拷贝父进程的数据
       vfork  子进程和父进程共享数据
 
二    fork  子进程和父进程 谁先运行 不确定
      vfork  子进程 先运行  父进程后运行
 
6. _exit  是 直接使进程中止,清除使用的内在空间 并清除各种数据结构
   exit  是安全退出
7. 僵尸进程   exit退出后 进程并没完全消失  产生了僵尸进程
 
8.wait   等待 子进程的退出 否则会一直阻塞
  waitpid   wait 其实的waitpid的特殊
9. 怎么编写一个守护进程
   一   创建子进程  终止父进程
   二   在子进程中创建一个新会话
   三   改变工作目录
   四  重设文件掩码
   五  关闭文件描述符号
 
如下
if(p1==0)
{
   printf("this a  zi");
   sleep(10);
 
}            
if(p1>0)
{
  //p2=wait(NULL);
  printf("this a fu");
 
}                 
exit(0)
                                                                                                                                                                    问题
1.为什么上面代码打印出this a zi
必须要等10秒
2.为什么不加wait 总是先打印 this is a fu
3.不加exit(0)
 程序有什么效果   该为 p1=vfork 呢
                                                                                                                                                                            
阅读(329) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~