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

做哪个网站零售最好网站空间在哪里

做哪个网站零售最好,网站空间在哪里,课程设计做淘宝网站的目的,购物网页设计代码进程的回收 1.wait 原型 pid_t wait(int *status); 功能#xff1a;该函数可以阻塞等待任意子进程退出 并回收该进程的状态。 一般用于父进程回收子进程状态。 参数#xff1a;status 进程退出时候的状态 如果不关心其退出状态一般用NULL表示 如果要回收进程…进程的回收 1.wait 原型 pid_t wait(int *status); 功能该函数可以阻塞等待任意子进程退出       并回收该进程的状态。   一般用于父进程回收子进程状态。 参数status 进程退出时候的状态   如果不关心其退出状态一般用NULL表示   如果要回收进程退出状态则用WEXITSTATUS回收。 返回值 成功时wait返回终止子进程的PID。 失败时返回-1并设置errno来指示错误。 关于子进程状态的一些宏定义 1.WIFEXITED(status)  是不是正常结束如果返回非零值则表示子进程正常结束了它的main函数或者调用了exit()函数。 2.WEXITSTATUS(status)  为真时使用这个宏来获取子进程的退出状态码。状态码是由main函数的返回值或者exit()函数的参数决定的。 3.WIFSIGNALED(status) 检查子进程是否是因为接收到信号而终止的。如果返回非零值则表示子进程是因为信号而终止。     4.WTERMSIG(status) 为真时使用这个宏来获取导致子进程终止的信号编号。 5.WIFSTOPPED(status): 检查子进程是否因为接收到SIGSTOP、SIGTSTP、SIGTTIN或SIGTTOU信号而停止。如果返回非零值则表示子进程已经停止。 6.WSTOPSIG(status): 当WIFSTOPPED(status)为真时使用这个宏来获取导致子进程停止的信号编号。 7.WIFCONTINUED(status): 检查子进程是否已经从停止stopped状态继续执行。如果返回非零值则表示子进程已经继续。 举例 int a20; int main(int argc, const char *argv[]) {pid_t ret fork();if(ret0){//printf(father is %d pid %d,ppid %d \n,a,getpid(),getppid());wait(NULL);printf(after wait\n);sleep(5);}else if(0ret){printf(child %d pid:%d ppid:%d,a,getpid(),getppid());sleep(3);printf(child terminal\n);exit(1);}else{perror(fork);return 1;}printf(a:%d pid:%d,a,getpid());return 0; } 利用宏定义判断子进程的状态 #include stdio.h #include unistd.h #include sys/types.h #include unistd.h #include sys/wait.h #include stdlib.h int a 20; int main(int argc, char *argv[]) {pid_t ret fork();if(ret0){//fatherprintf(father is %d pid %d ,ppid:%d \n,a,getpid(),getppid());int status;pid_t pid wait(status);if(WIFEXITED(status))// 代表子进程正常结束{//正常结束的子进程才能获得退出值printf(child quit values %d\n,WEXITSTATUS(status));}if(WIFSIGNALED(status))//异常结束{printf(child unnormal signal num %d\n, WTERMSIG(status));}printf(after wait, %d\n,status);}else if(0 ret){//childprintf(child a is %d pid:%d ppid:%d\n,a,getpid(),getppid());sleep(5);printf(child terminal\n);exit(50);}else {perror(fork error\n);return 1;}printf(a is %d pid:%d\n,a,getpid());return 0; } 2.waitpid 原型 #include sys/types.h #include sys/wait.hpid_t waitpid(pid_t pid, int *status, int options); 参数说明 pid: 子进程的PID。如果设置为 -1则表示等待任一子进程这与 wait 函数的行为相同。status: 指向整数的指针用于接收子进程的状态信息。如果不需要状态信息可以传递 NULL。options: 指定等待行为的选项常用的选项有 WNOHANG: 如果子进程尚未终止调用立即返回而不是挂起等待。0  表示回收过程会阻塞等待 返回值 成功时返回子进程的PID。如果子进程尚未终止使用了 WNOHANG 选项返回 0。失败时返回 -1并设置 errno 以指示错误 练习 设计一个多进程程序用waitpid函数指定回收 其中的某个进程资源并将其状态打印输出。 其他的进程都以非阻塞方式进行资源回收。 #include stdio.h #include unistd.h #include sys/types.h #include unistd.h #include sys/wait.h #include stdlib.h int main(int argc, char *argv[]) {int i 0 ;pid_t ret[5]{0};printf(father pid %d ,ppid:%d \n,getpid(),getppid());for(i 0 ;i5;i){ret[i] fork();if(ret[i]0){//father}else if(0 ret[i]){//childprintf(child pid:%d ppid:%d\n,getpid(),getppid());sleep(rand()%5);exit(1);}else {perror(fork error\n);return 1;}}int status;while(1){pid_t pid waitpid(ret[2],status, WNOHANG);if(ret[2] pid){if(WIFEXITED(status))// 代表子进程正常结束{//正常结束的子进程才能获得退出值printf(child quit values %d\n,WEXITSTATUS(status));}if(WIFSIGNALED(status))//异常结束{printf(child unnormal signal num %d\n, WTERMSIG(status));}printf(father recycle success, pid :%d\n,pid);break;}else if(0 pid){printf(子进程未结束稍后在试\n);//usleep(1000);sleep(1);}}printf(after wait, %d\n,status);return 0; }exec exec函数族在 C 语言中用于在当前进程的上下文中执行一个新的程序。exec 函数不会创建新的进程而是替换当前进程的映像为新程序的映像。这意味着进程的PID保持不变但是执行的程序完全改变。 exec族函数 execl(const char *path, const char *arg0, ...):         加载并执行由 path 指定的程序arg0 是传递给新程序的主参数后面可以跟随其他参数以 NULL 结尾。 execv(const char *path, char *const argv[]):           加载并执行由 path 指定的程序argv 是一个以 NULL 结尾的参数数组。 execle(const char *path, const char *arg0, ..., char *const envp[]):            与 execl 类似但允许指定一个新的环境指针数组 envp替换当前环境。 execve(const char *path, char *const argv[], char *const envp[]):            加载并执行由 path 指定的程序argv 是参数数组envp 是环境变量数组。 execlp(const char *file, const char *arg0, ...):            与 execl 类似但在 PATH 环境变量中搜索程序 file。 execvp(const char *file, char *const argv[]):            与 execv 类似但在 PATH 环境变量中搜索程序 file。 execvpe(const char *file, char *const argv[], char *const envp[]):            与 execve 类似但在 PATH 环境变量中搜索程序 file并允许指定新的环境变量数组 envp。 举例 #include stdio.h #include stdlib.h #include unistd.h int main(int argc, char *argv[]) {// firefox www.baidu.com //execl(/usr/bin/firefox,firefox,www.baidu.com,NULL);// env echo $PATH ls -l --colorauto ll//execlp(ls,ls,-l,--colorauto,NULL);char *const args[]{ls,-l,--colorauto,NULL};//execv(/bin/ls,args);//vector// pathexecvp(args[0],args);//vectorpathprintf(看见就错了\n);exit(1);return 0; #include stdio.h #include stdlib.h #include unistd.h int main(int argc, char *argv[]) {// firefox www.baidu.com //execl(./aaa,aaa,1,2,3,NULL);// env echo $PATH ls -l --colorauto ll//execlp(./aaa,aaa,1,2,3,NULL);char *const args[]{aaa,1,2,3,NULL};//execv(./aaa,args);//vector// pathexecvp(./aaa,args);//vectorpatha//如果需要都能调用成功第一个参数都传 路径文件名printf(看见就错了\n);exit(1);return 0; }
http://www.w-s-a.com/news/842175/

相关文章:

  • 荆州网站建设多少钱南阳做网站推广
  • 网站代理打开个人网站设计源码
  • 做php网站的话要学什么语言wordpress搜索不到
  • 金华官方网站建设网络营销策划模板
  • 网站开发到上线在线生成小程序
  • 动易网站设计方案郑州营销网站建设
  • 怎么上网站做简易注销的步骤郑州大学现代远程教育《网页设计与网站建设》课程考核要求
  • 新乡网站建设新乡长沙本地论坛有哪些
  • 潍坊中企动力做的网站怎么样wordpress接入微博
  • 网站开发者所有权归属网站项目建设的必要性
  • 菜鸟网站编程广州网站设计权威乐云践新
  • 网站做接口到app 价格大地资源免费视频观看
  • 怎么给钓鱼网站做防红网站建设相关的
  • 教育培训的网站建设湖南网站建设小公司
  • 福建南平网站建设创意交易平台网
  • 做直播网站要哪些技术内容营销理论
  • 价格划算的网站开发怎么找有赞做网站
  • 做网站店铺图片用什么软件网络营销方案格式
  • 做外贸要自己建网站吗有效的网络营销方式
  • 精通网站开发书籍做网站获取手机号码
  • 论坛做视频网站有哪些济南新站seo外包
  • 哪类型网站容易做冷水滩做微网站
  • 搭建企业网站流程保定徐水网站建设
  • 建设单位到江川区住房和城乡建设局网站伦敦 wordpress 设计
  • 响应式网站的服务麦德龙网站建设目标
  • 做国外单的网站叫什么海南省海口市网站建设
  • 杭州响应式网站案例wordpress5.2.2
  • 网站建设运营维护合同wordpress资源搜索插件
  • 国外网站流量查询东莞网站建设教程
  • 餐饮类网站建设达到的作用东莞工程建设交易中心网