当前位置: 首页 > news >正文

上海 有哪些做网站的公司泰州网站建设

上海 有哪些做网站的公司,泰州网站建设,给公司做门户网站 可以用凡客吗,wordpress标题背景设置一、进程组 1. 进程组 #xff08;1#xff09;进程组#xff0c;也称之为作业#xff0c;BSD与1980年前后向UNIX中增加的一个新特性#xff0c;代表一个或多个进程的集合。每个进程都属于一个进程组#xff0c;在waitpid函数和kill函数的参数中都曾经使用到#xff0c…一、进程组 1. 进程组 1进程组也称之为作业BSD与1980年前后向UNIX中增加的一个新特性代表一个或多个进程的集合。每个进程都属于一个进程组在waitpid函数和kill函数的参数中都曾经使用到操作系统设计的进程组的概念是为了简化对多个进程的管理。 当父进程创建子进程的时候默认子进程与父进程属于同一个进程组进程组ID等于进程组第一个进程ID(组长进程)。所以组长进程标识其进程组ID等于其进程ID. 组长进程可以创建一个进程组创建该进程组的进程然后终止只要进程组中有一个进程存在进程组就存在与组长进程是否终止无关。 2kill发送给进程组 使用 kill -n -pgid 可以将信号 n 发送到进程组 pgid 中的所有进程。例如命令 kill -9 -4115 表示杀死进程组 4115 中的所有进程。 2. getpgid、getpgrp函数原型 pid_t getpgrp(void); pid_t getpgid(pid_t pid); 分析 函数1获取当前进程的进程组ID函数2如果pid 0那么该函数作用和getpgrp一样。3. setpgid函数函数原型改变进程默认所属的进程组通常可用来加入一个现有的进程组或新进程组。 int setpgid(pid_t pid, pid_t pgid); 分析将参数1对应的进程加入参数2对应的进程组中。 注意 如改变子进程为新进程组用fork后exec前。权级问题非root进程只能改变自己创建的子进程或有权限操作的进程。 4. 测试代码 #include stdio.h #include stdlib.h #include unistd.hint main() {pid_t pid;if ((pid fork()) 0) {perror(fork);exit(1);}else if (pid 0) //子进程{printf(child PID %d\n, getpid());printf(child Group ID %d\n, getpgid(0)); //返回组idsleep(7);printf(-------Group ID of child id change to %d\n, getpgid(0));exit(0);}else if (pid 0) //父进程{sleep(1);setpgid(pid, pid); //让子进程自立门户成为进程组组长以它的pid为进程组 id sleep(13);printf(\n);printf(parent PID %d\n, getpid());printf(parents parent PID %d\n, getppid());printf( parent Group ID %d\n, getpgid(0));sleep(5);setpgid(getpid(), getppid()); //改变父进程组id为父进程的父进程printf(\n-------Group ID of parent is change to %d\n, getpgid(0));while (1);}return 0; } 输出结果 二、进程组的应用 1. 实验一 题目利用进程扇完成一个小实验。该进程扇有 1 个父进程和 3 个子进程我们希望达到图 1 中的效果即将进程 0 (父进程)和进程 1 设置成一组假设为组 1将进程 2 和 进程 3 设置成另一个组假设为组 2. 另外我们希望进程 0 和进程 2 分别是这两个组的组长。      1. 测试代码 #include unistd.h #include string.h #include stdio.h #include stdlib.h #include errno.hint main() {int pid, i;int group1, group2;// 设置父进程(进程 0)为组长 setpgid(getpid(), getpid());group1 getpgid(getpid());for (i 1; i 3; i) {pid fork();if (pid 0) child{if (i 1) {// 如果 group1 根本不存在就会出问题。// 比如进程 0 已经运行结束。setpgid(getpid(), group1);}else if (i 2) {setpgid(getpid(), getpid());group2 getpgid(getpid());}else if (i 3) {// 试想如果进程 2 还没运行进程 3 先运行了// 这时候 group2 还未进行设置这里就会有问题。// 或者进程 2 已经结束那进程 3 的设置也会失败setpgid(getpid(), group2);}break;}else if (pid 0) {perror(fork);return -1;}}printf(进程 %d, pid: %d - ppid: %d, pgid: [%d], (%s)\n, i % 4, getpid(), getppid(), getpgid(getpid()), strerror(errno));while (1) sleep(1);return 0; } 输出结果  测试代码 #include unistd.h #include stdlib.h #include stdio.h #include sys/wait.hint main(void) {setpgid(getpid(), getpid());pid_t group1 getpgid(getpid());pid_t group2;int i 0;for(; i 3; i){pid_t pid fork();if(pid 0){perror(fork error);exit(1);}else if(pid 0){// parent processif(i 0)setpgid(pid, group1);if(i 1){setpgid(pid, pid);group2 getpgid(pid);}if(i 2)setpgid(pid, group2);}else{// child processif(i 0)setpgid(getpid(), group1);if(i 1){setpgid(getpid(), getpid());group2 getpgid(getpid());}if(i 2)setpgid(getpid(), group2);break;}}printf(pid:%d, ppid:%d, pgid:%d\n, getpid(), getppid(), getpgid(getpid()));for(int i 0; i 3; i)wait(0);return 0; } 输出结果 2. 实验二 题目利用进程扇完成一个小实验。该进程扇有 1 个父进程和 3 个子进程我们希望达到图 1 中的效果即将进程 0 (父进程)和进程 1 设置成一组假设为组 1将进程 2 和 进程 3 设置成另一个组假设为组 2. 另外我们希望进程 0 和进程 2 分别是这两个组的组长。 测试代码 #include unistd.h #include string.h #include stdio.h #include stdlib.h #include errno.hint main() {int pid, i;int group1, group2;setpgid(getpid(), getpid());group1 getpgid(getpid());for (i 0; i 3; i) {pid fork();if (pid 0) //父进程{if (i 0) {setpgid(pid, pid);group2 getpgid(pid);} else if (i 1) {setpgid(pid, group1);} else if (i 2){setpgid(pid, group2);} break;} else if (pid 0) //子进程{if (i 0) {setpgid(getpid(), getpid());group2 getpgid(getpid());} else if (i 1) {setpgid(getpid(), group1);} else if (i 2) {setpgid(getpid(), group2);} } else if (pid 0) {perror(fork);return -1; } }printf(进程 %d, pid: %d - ppid: %d, pgid: [%d]\n, i, getpid(), getppid(), getpgid(getpid()));while(1) sleep(1);return 0; }
http://www.zqtcl.cn/news/634209/

相关文章:

  • 品牌网站建设熊掌号一级消防工程师考试通过率多少
  • 网站建设淘宝客模板湖口网站建设
  • 拱墅区建设局网站做设计的搜素材上什么网站
  • 济南烨铭网站建设外贸建网站免费模板
  • 那些网站可以做反链浏览器网站大全
  • 泉州网站建设推广企业网页兼容性站点
  • 怎样做视频上网站赚钱推广计划怎么做推广是什么
  • 台州外贸网站建设做网站开发一般用什么语言
  • 咸阳做网站的公司漯河网做网站
  • 红酒网站模板下载做网站加推广
  • 免费网站服务器域名在线手机网站建设
  • 北京网站ui设计公司在线设计装修
  • 大学生网站作业北京网站优化技术
  • 静安区网站开发固原网络推广
  • WordPress网站修改志成网站设计制作
  • 做网站需要注意的昭通网站seo优化
  • 站群软件lanyun网站开发
  • 固始网站制作html美食网页设计源码
  • 软件研发过程管理岳阳seo
  • 舟山网站建设代理门户网站建设流程
  • 天水建设银行网站网站建设方案免费下载
  • 长城宽带魔方优化大师官网下载
  • 宁波建设工程主管部门网站长沙网站维护
  • 网站推广机构我的世界怎么做赞助网站
  • 做网站的公司图sae wordpress storage
  • 做塑料的网站有哪些东道设计公司待遇如何
  • 烟台做网站哪家好网站加速器下载
  • 哪些网站是响应式河北省住房和城乡建设厅信用网站
  • 彩票网站html模板新闻html网页设计代码范文
  • 建网站视频怎么建网站卖产品