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

制作网站费怎么做会计科目导航网源码

制作网站费怎么做会计科目,导航网源码,东莞足球场建设工程公司,青岛网站seo优化创建子进程 函数声明如下#xff1a; pid_t fork(void); 返回值#xff1a;失败返回-1#xff0c;成功返回两次#xff0c;子进程获得0(系统分配)#xff0c;父进程获得子进程的pid 注意#xff1a;fork创建子进程#xff0c;实际上就是将父进程复制一遍作为子进程 pid_t fork(void); 返回值失败返回-1成功返回两次子进程获得0(系统分配)父进程获得子进程的pid 注意fork创建子进程实际上就是将父进程复制一遍作为子进程但子进程只执行fork之后的代码不执行fork之前的代码。这里的复制代表了父子进程的空间是独立的互不影响。 孤儿进程与僵尸进程 如果父进程先结束那么子进程变成孤儿进程最终被init进程收养并且子进程变为后台进程。 如果子进程先结束但父进程没有回收子进程那么子进程变成僵尸进程。 fork基本使用方法 pid fork(); if(pid0){perror(fork);return -1; }else if(pid 0){//子进程代码 }else if(pid 0){//父进程代码 } 创建多个子进程  具体代码实现如下 #include sys/types.h #include unistd.h #include stdio.hint main(){pid_t pid;int i;printf(father pid %d\n,getpid());for(i0;i5;i){if((pidfork()) 0){perror(fork);return -1;}else if(pid 0){break;//子进程不进行fork}}if(i5){printf(father pid %d\n,getpid());}else{printf(child pid %d\n,getpid());}while(1);return 0; }代码执行结果如下  进程结束 函数声明如下 void exit(int status);void _exit(int status); void _Exit(int status); exit结束进程后会刷新缓冲区其余这三个函数没有区别。 status返回给系统的状态值 注意main函数结束会隐式调用exit函数所以在main函数结束时会刷新缓冲区。 exit刷新缓冲区实验 进程回收 函数声明如下 pid_t wait(int *wstatus); pid_t waitpid(pid_t pid, int *wstatus, int options); 返回值成功返回回收的子进程的pid失败返回EOF wstatus保存子进程结束的状态NULL代表直接释放子进程的PCB不接收返回值。 pid想要回收的子进程的pid-1代表任意子进程0代表进程组中的任意子进程 options回收的方式 0阻塞等待子进程结束WNOHANG不阻塞等待子进程结束子进程未结束也返回继续执行下面代码。 注意父进程调用该函数后一直处于阻塞状态直到子进程结束 通过宏来解析wstatus wstatus中包含了是否正常退出、exit返回值、是否被信号结束、结束进程的信号类型。 解析的宏如下 宏含义WIFEXITED(wstatus)判断子进程是否正常退出WEXITSTATUS(wstatus)获取子进程返回值即exit的值WIFSIGNALED(wstatus)判断子进程是否被信号结束WTERMSIG(wstatus)获取结束子进程的信号类型 wait测试代码 具体代码实现如下 #include sys/types.h #include unistd.h #include sys/wait.h #include stdlib.h #include stdio.h #include errno.h int main(){pid_t pid;int wstatus;if((pid fork()) 0){return -1;}else if(pid 0){sleep(10);printf(now child exit\n);exit(2);}else{wait(wstatus);//以阻塞方式等待子进程退出printf(是否正常退出:%d\n,WIFEXITED(wstatus));printf(子进程的返回值为%d\n,WEXITSTATUS(wstatus));printf(子进程是否被信号结束%d\n,WIFSIGNALED(wstatus));printf(结束子进程的信号类型%d\n,WTERMSIG(wstatus));}return 0; } 代码执行结果如下 waitpid填写WNOHANG实验 当子进程退出后子进程的pid会一直存在直到被回收。当写入WNOHANG时waitpid不会进入阻塞。但可以通过循环的模式一次次判断是否有子进程需要回收。 具体代码实现如下 #include sys/types.h #include unistd.h #include sys/wait.h #include stdlib.h #include stdio.h #include errno.h int main(){pid_t pid;int wstatus;if((pid fork()) 0){return -1;}else if(pid 0){sleep(5);printf(now child exit\n);exit(2);}else{while(1){if(waitpid(pid,wstatus,WNOHANG) 0){ //当子进程退出后,父进程退出whilebreak;}printf(father is running\n);sleep(1);}}return 0; } 代码执行结果如下 进程执行其他程序 1、exec exec函数的作用 进程调用exec函数执行某个程序调用后进程的当前内容被指定的程序替换但进程号不变。 利用exec可以实现父子进程执行不同的程序创建子进程-子进程调用exec执行其他功能。  函数声明如下 int execl(const char *pathname, const char *arg, ...); int execlp(const char *file, const char *arg, ...); int execv(const char *pathname, char *const argv[]); int execvp(const char *file, char *const argv[]); 返回值失败返回-1 pathname执行程序的路径 file执行程序的名字会从环境变量PATH中寻找该执行程序 arg执行程序的参数第0个参数为程序名 argv执行程序的参数以字符串数组形式呈现 ...写NULL、0、(char*)0这三个中的其中一个 示例使用execl实现  ls -li . 的功能 具体代码实现如下 #include unistd.h #include stdio.hint main(){//ls -li . 有三个参数,ls是第0个参数execl(/bin/ls,ls,-li,.,NULL);printf(get\n);return 0; }代码运行结果如下 示例使用execv实现  ls -li . 的功能 具体代码实现如下 #include unistd.h #include stdio.h #include errno.h int main(){//这里最后一个NULL不需要加双引号char* a[] {ls,-li,.,NULL};if(execv(/bin/ls,a) -1){perror(execv);}printf(get\n);return 0; }代码运行与execl一样 2、system system的作用 执行一个指令调用system后会等待指令执行结束之后继续执行下面的代码而不是像exec那样下面的代码被替代。 函数声明如下 int system(const char *command); 返回值失败返回EOF command一个指令以字符串形式呈现 示例使用system实现  ls -li . 的功能 具体代码实现如下 #include stdlib.h #include stdio.h #include errno.h int main(){system(ls -li .);printf(get\n);return 0; }代码运行结果如下
http://www.hkea.cn/news/14363119/

相关文章:

  • vps 网站发布ppt的制作方法
  • 广丰区建设局网站长沙网站建设zh68
  • 专门做电商的招聘网站网泰网站建设网络推广
  • 做企业网站 长春招商平台哪个好
  • 啤酒网站建设app开发公司哪个公司好
  • 哪个网站可以做砍价新北方app下载
  • 怎么上传自己的网站手机网站 域名
  • 昆明网站建设手机版阿里企业邮箱注册申请免费
  • 网站做优化按点击收费网站模版制作教程
  • 外贸推广网站收费吗ps怎么做电商网站
  • 网站设计用什么字体搜索引擎优化seo目的
  • canvas 特效网站云南政务服务网
  • 做网站的钱叫什么科目站长工具seo词语排名
  • 上海昆山网站公司网站活动模板
  • 国外手机设计网站推荐怎么做网站在线玩游戏
  • 东莞网站制作十强世界工厂网官网下载
  • 无需注册免费创建网站溧阳网站建设
  • 国建设银行e路通网站申陕西网站建设通报
  • linux 建立网站抖音代运营话术模板
  • 公司网站怎么做才能吸引人如何在外管局网站做付汇延期
  • 北京做网站比较有名的公司有哪些珠海做网站哪家专业
  • 网站如何做直播让wordpress主题适用插件
  • 网站字体大小是多少合适wordpress加载主题
  • 没有备案的交易网站最近三天的国内新闻
  • 自己有域名怎么做网站定西市建设网站费用
  • 长春网站快速排名提升专业的句容网站建设
  • 花生壳可以用来做网站吗招投标网站官网
  • 潍坊正规建设网站网站建设120
  • 小说网站开发过程 实训报告河北工程信息网
  • 安阳网站建设_建筑业企业所得税2%