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

做网站服务器要什么系统seo权重优化

做网站服务器要什么系统,seo权重优化,泰安网络推广平台,征集二级网站建设意见 通知一、进程的退出 (一)僵尸进程与孤儿进程 (二)相关函数 1、exit函数 2、_exit函数 3、atexit函数 二、进程空间的回收(相关函数) 1、wait函数 2、waitpid函数 3、练习 4、exec族 5、system函数 一…

一、进程的退出

(一)僵尸进程与孤儿进程

(二)相关函数

1、exit函数

2、_exit函数

3、atexit函数

二、进程空间的回收(相关函数)

1、wait函数

2、waitpid函数

3、练习

4、exec族

5、system函数

一、进程的退出

(一)僵尸进程与孤儿进程

1、僵尸进程:进程执行结束但空间未被回收变成僵尸进程(pcb不释放会导致内存越来

                        越小导致内存崩溃);

2、孤儿进程:父进程先消亡。

(二)相关函数

1、exit函数

(1)函数原型:

void exit(int status)

//调用:

exit(1);

(2)功能:让进程退出,并刷新缓存区

(3)参数:status:进程退出的状态

(4)返回值:缺省

        EXIT_SUCCESS 0

        EXIT_FAILURE 1

(5)属于库函数

        退出状态,终止的进程会通知父进程,自己使如何终止的。如果是正常结束(终

止),则由exit传入的参数。如果是异常终止,则有内核通知异常终止原因的状态。任

何情况下,父进程都能使用wait,waitpid获得这个状态,以及资源的回收。

(6)相当于return

        但当该关键字出现在main函数中的时候可以结束进程

        如果在其他函数中则表示结束该函数;

(7)注意:不管函数调用层次多深,调用exit函数后当前进程立马结束;

                    全面回收工作:文件关闭、堆释放、缓冲区清理。

(8)示例:

2、_exit函数

  该函数属于系统调用

(1)函数原型:void _exit(int status);

(2)功能:让进程退出,不刷新缓存区(只会关闭已打开的文件,其他不管)

(3)参数:status:进程退出状态

(4)返回值:缺省

(5)示例:

3、atexit函数

回调函数

(1)函数原型:int atexit(void (*function)(void));

(2)功能:注册进程退出前执行的函数

(3)参数:function:函数指针,指向void返回值void参数的函数指针

(4)返回值:成功返回0,失败返回非0

(5)注:当程序调用exit或者由main函数执行return时,所有用atexit注册的退出函数,将

                会由注册时顺序倒序被调用

(6)示例:

二、进程空间的回收(相关函数)

1、wait函数

(1)函数原型:pid_t wait(int *status);

(2)功能:该函数可以阻塞等待任意子进程退出并回收该进程的状态;

                     一般用于父进程回收子进程状态。

(3)参数

        status 进程退出时候的状态(退出状态(32Bit)包括退出值(8Bit)):

                如果不关心其退出状态一般用NULL表示;

                如果要回收进程退出状态,则用WEXITSTATUS回收。

(4)返回值:成功 回收的子进程pid;失败 -1;

(5)宏:

WIFEXITED(status) 判断是不是正常结束
WEXITSTATUS(status) 若正常结束则使用这个宏去返回状态
WIFSIGNALED(status) 判断是不是收到了信号而终止的
WTERMSIG(status)如果是信号终止的,那么是几号信号

(6)注意:

        如果所有的子进程都在运行,在阻塞(进程运行过程中,某条件未满足导致当前进

程被迫进入等待状态);

        如果一个子进程终止,正在等待的父进程则获得终止状态,获得子进程的状态后,

 立刻返回。

        如果没有子进程,则立即出错退出。

waitpid(-1,status,0)=wait(status);

(7)示例:

2、waitpid函数

(1)函数原型:pid_t waitpid(pid_t pid, int *status, int options);

(2)pid:

小于-1 回收指定进程组内的任意子进程;
等于-1 回收任意子进程,组内外;
等于0 回收和当前调用waitpid一个组的所有子进程,组内;
大于0 回收指定ID的子进程;

waitpid (-1,a,0) == wait(a);

(3)status:子进程退出时候的状态

        如果不关注退出状态用NULL;

(4)options 选项:0 表示回收过程会阻塞等待;

                                WNOHANG 表示非阻塞模式回收资源。
(5)返回值:成功 返回接收资源的子进程pid
                        失败 -1,0

(6)示例:

3、练习

        设计一个多进程程序,用waitpid函数指定回收其中的某个进程资源并将其状态打

印输出。其他的进程都以非阻塞方式进行资源回收。

运行结果:

4、exec族

启动一个已存在的外部程序

(1)用fork创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分

支),子进程往往要调用一种exec函数以执行另一个程序。当进程调用一种exec函时,

该进程的用户空间代码和数据完全被新程序替换,从新程序的启动例程开始执行。调用

exec并不创建; 新进程,所以调用exec前后该进程的id并未改变。

(2)进程角度:代码段被替换(老进程被新进程替换)

新代码段走完后,a.out结束

(3)六种以exec开头的函数,统称exec函数;

a.函数原型:

#include <unistd.h>
int execl(const char *path, const char *arg, ...);
int execv(const char *path, char *const argv[]);

int execle(const char *path, const char *arg, ..., char *const envp[]);
int execle(const char *path, const char *arg, ..., char *const envp[]);

int execve(const char*path,char*const argv[],char*const evnp[]);
int execlp(const char *file, const char *arg, ...);

int execvp(const char *file, char *const argv[]);
int execve(const char *path, char *const argv[], char *const envp[]);

b.函数区别

1)前4个使用路径名作为参数,后面两个使用文件名做参数

     当filename中,含有/时视为路径名,否则就按PATH变量,在指定目录下查找可执行

文件。

2)相关的参数表传递,l表示list,v表示vector;

execl,execlp,execle,需要将参数一个一个列出,并以NULL结尾。

execv,execvp,execve,需要构造一个参数指针数组,然后将数组的地址传入。

3)以e结尾的函数,可以传入一个指向环境字符串的指针数组的指针。其他未指定环境

变量,使用父进程继承过来的。execve 是真正的系统调用

4)这些函数如果调用成功则加载新的程序从启动代码开始执行,不再返回,如果调用

出错则返回-1,所以exec函数只有出错的返回值而没有成功的返回值

c.示例:

5、system函数

 该函数为系统函数

(1)函数原型:int system(const char *command); 

(2)底层实现:fork+exec ,(快捷的exec)

(3)功能:使用该函数可以将shell命令直接在代码中执行;

(4)参数:command:要执行的shell命令;

(5)返回值:成功 0,失败 -1;

(6)调用:system("vim 1.c");

http://www.dtcms.com/wzjs/415426.html

相关文章:

  • 郑州冬青街 网站建设郑州网络推广大包
  • 药企做网站十大广告公司
  • 高端品牌粉碎机500强企业seo服务商
  • 自己怎么做优惠搜网站网站建设制作教程
  • erlang做网站优势株洲做网站
  • wordpress模评论2022年seo最新优化策略
  • it外包服务商10强说说seo论坛
  • 9个做简历的网站个人博客网页设计html
  • 常用网站布局seo专员的工作内容
  • 大连云建站模板竞价培训
  • 重庆职业能力建设投稿网站如何在网络上推广产品
  • 兰州网站制作有哪些东莞seo排名优化
  • 快速搭建网站的工具有哪些百度关键词优化大
  • 汕头cms建站免费开发软件制作平台
  • 深圳外网站建设搜索引擎优化好做吗
  • 企业网站建设 电脑配置近期重大新闻
  • 长沙微网站建设淘宝产品关键词排名查询
  • 做房产网站赚钱吗软文大全500篇
  • 可以做别人的网站上挂一个网页吗谈谈你对网络营销的认识
  • 手机静态网站建设课程设计报告学技术包分配的培训机构
  • wordpress显示问题如何优化关键词排名到首页
  • 公司网站域名在哪里备案文明seo
  • 织梦网站首页在哪里改短视频推广引流
  • iss服务器上部署的网站怎么打开开发新客户的十大渠道
  • 青岛网站制作公司网络关键词优化推广
  • 用二级域名做网站对seo国外搜索引擎网址
  • 深圳坪山新闻短视频搜索优化
  • 重庆建设工程质量检测监管平台电子商务seo
  • 天津工程建设信息网站第三方营销平台有哪些
  • 深圳龙华企业网站设计站长之家音效