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

请问做网站和编程哪个容易些24小时最新国际新闻

请问做网站和编程哪个容易些,24小时最新国际新闻,深圳做网站的公司 cheungdom,jsp动态网站开发实践教程电子档目录 前言 一、创建进程 二、退出进程 void exit (int retval) 三、进程等待 四、进程替换 前言 提示:这里可以添加本文要记录的大概内容: 前面我们认识了进程,现在让我们认识几个进程的接口 提示:以下是本篇文章正文内容…

目录

前言

一、创建进程

二、退出进程

void exit (int retval) 

三、进程等待 

四、进程替换


前言

提示:这里可以添加本文要记录的大概内容:

       前面我们认识了进程,现在让我们认识几个进程的接口


提示:以下是本篇文章正文内容,下面案例可供参考

一、创建进程

接口

        pid_t fork(void)

功能:通过复制父进程创建一个子进程

返回值:对于父进程返回子进程的pid,对子进程成功返回0,失败返回-1;

特点:父子进程,数据独有、代码共享。

数据独有,代码共享

        创建一个进程pcb,pcb中有一个指针指向虚拟地址空间(内存指针),指向的所以地址都会同页表映射到物理内存中,而代码中的g_val通过映射在物理内存中存储数据,当我们创建子进程,它就会复制子进程,它就会复制父进程(复制了所有的地址,映射关系,页表,若子进程修改g_val的数据,那么他会生成一个新的数据放到物理内存中,若不修改继续使用父进程的数据)。

目的:提高子进程的创建效率、节省了空间内存的申请与大量数据拷贝的过程。

        

接口

        pid_t vfork(void);
        创建出了的子进程与父进程共用一个虚拟地址空间与fork相比较少了拷贝,提高了效率

缺点

        父进程调用vfork创建了子进程后会阻塞、只有等到子进程exit退出,或子进程进行了程序替换(程序替换后子进程会有自己的虚拟地址空间,页表等)

二、退出进程

退出进程的三种方法

        1:在main函数中return ;

        2:使用库函数:void exit(int retval);

        3:系统调用接口:void_exit(int retval)

void exit (int retval) 

        库函数exit作用:在程序退出前刷新缓冲区,将缓冲区中数据写入文件中;

        系统调用接口exit:直接释放资源;

缓冲区:缓冲区是内存空间的一部分,当我们进行IO操作的时候不会理解IO,要先将数据放到缓                  冲区中,大量的小的数据累计到缓冲区中,当缓冲区满了。就累积成了大数据,再进行                  IO操作就可以达到,一次IO操作就写入了多次IO数据,减少了大量的IO操作,提高了效率

普通文件和标准输出(显示器设备文件)是不一样的:

        1.普通文件是全缓冲(缓冲区满的时候刷新缓冲区)

        2.显示器设备文件是行缓冲(数据在有换行就会刷新缓冲区)

        指令:echo$?  (获取进程返回值)

三、进程等待 

 作用

        创建一个子进程后,等待子进程的退出,获取子进程的退出状态,避免僵尸进程的产生

接口

   int wait (int *statu);  -- 阻塞接口

        阻塞:为了完成某个操作,发起调用。若不具备操作的完成条件,则调用一直等待

        非阻塞:为了完成某个操作,发起调用。若不具备操作的完成条件,立即报错返回。

        功能:等待一个子进程退出,若当前没有子进程退出,一直等待直到成功退出。

        返回值:返回值大于0代表退出成功,表示的是退出子进程的pid,出错返回-1

        参数:int *statu--表示整形空间的地址,报错退出子进程的退出状态。

   int waitpid (pid_t pid, int *statu, int option);  -- 阻塞接口

        功能:若pid参数设置为-1,表示等待任意子进程退出,否则就是等待指定子进程退出

        参数:

           pid:-1等待任意子进程,大于0表示等待指定子进程

           statu:获取退出子进程的退出状态

           option:0-默认阻塞操作,WNOHANG——非阻塞操作

statu:

        对于返回值用了一个字节来保存,在大多计算机在8位为一个字节,int类型是4个字节,及32位,其中前16位没有用到,后十六位中,前8位存储的是进程的退出码(进程的退出码只有一个字节)。低8位中的高1位有一个比特位的core dump标志,标记是否开启了核心转储功能。

        核心转储功能:

                core dump:程序异常退出时,保存程序的运行数据。

                目的:能够进行程序运行崩溃后的事后调试

        低7位:存储异常退出的信号值(崩溃)

                由于一个程序只有正常退出,返回值才是有意义的,所以问你获取返回退出码时,

                要先判断进程是否正常退出

        判断方法:低7位存储的是进程异常退出的信号值,低7位为0正常退出,非0表示异常                              退出

        低7位获取方法:statu & 0x7F

        中8位获取:(statu >> 8) & 0xFF

判断进程是否正常:

        接口:WIFEXITED(statu) 正常为真,否则为假——0为假,非0为真

                   WEXITSTATUS(statu) 提取statu的退出码——宏定义在<sys/ait.h>头文件中

                   例:printf("statu: %d\n", WEXITSTATUS(statu) );

四、进程替换 

        概念:替换进程的描述信息,让当前进程描述另一个进程(程序的运行过程) 

        功能:让一个进程运行另一个程序

接口:

        int execve(char* path, char* argv[], char* env[]);

功能:程序替换

参数:

        path:一个新的进程的路径名

        argv:要运行的新程序的运行参数

        env:要运行的新程序的环境变量

返回值:替换成功返回-1,失败没有返回值

http://www.ds6.com.cn/news/13697.html

相关文章:

  • 海南百度网站建设关键词搜索引擎
  • 南宁武鸣区建设局网站app推广引流方法
  • 贵州网站制作哪家好google秒收录方法
  • 程序小程序开发seo推广的网站和平台有哪些
  • 做网站敲代码的图片怎么找平台推广自己的产品
  • word可以做招聘网站吗今日热点新闻事件
  • 河南建设河南勘察设计协会网站百度极速版下载安装最新版
  • 上门做网站哪家好竞价广告是什么意思
  • 做网站大概需要几个人谷歌google官网入口
  • 如何利用网站新闻做推广google广告投放技巧
  • 营销crm系统网站设计建站网站关键词优化
  • 上海浦东建设集团官方网站网络互联网推广
  • 沛县专业做网站安徽网络建站
  • 做北京塞车网站seo网络推广经理招聘
  • 网站可以做多少事情免费推广网站注册入口
  • 威海住房和城乡建设局网站网址缩短
  • 如何查看网站是否被降权最新今日头条
  • 上海公司网站制作价格站长工具永久
  • 西安做网站公司报价怎样做网络推广
  • 东戴河网站建设网站做外链平台有哪些
  • 做新闻网站如何重庆百度seo代理
  • 建设一个网站首先需要品牌策划推广方案
  • 网站域名根目录在哪里国内做网站的公司
  • 中国建设银行下载安装网站优化外包
  • 辽宁城市建设网站北京中文seo
  • 网站建设图文教程seo网站营销推广
  • 市场部职能中的网站建设最牛餐饮营销手段
  • 用来做问卷调查的网站速推网
  • 自己做网站2008R2好还是win7网络服务费计入什么科目
  • 都安网站建设站长之家查询网