加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_镇江站长网 (https://www.0511zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Unix > 正文

UNIX环境高级编程:进程管理和通信

发布时间:2016-09-26 20:24:19 所属栏目:Unix 来源:站长网
导读:副标题#e# 进程和程序的区别: 进程: 程序的一次执行过程 动态过程,进程的状态属性会发生变化 程序:存放在磁盘上的指令、数据的有序集合 是个文件,可直观看到 程序program 静态的概念,本身不会发生变化。指令谁来执行,数据谁来访问?cpu! 但前提是cpu

setsid函数用于创建一个新的会话,并使得当前进程成为新会话组的组长

setsid函数能够使进程完全独立出来,从而脱离所有其他进程的控制。

#include <unistd.h>

pid_t setsid(void)

chdir(“/”) 改变工作目录

通常的做法是让“/”或”/tmp”作为守护进程的当前工作目录 。

在进程运行过程中,当前目录所在的文件系统是不能卸载的。

chdir函数可以改变进程当前工作目录

umask(0)  重设文件权限掩码

文件权限掩码是指文件权限中被屏蔽掉的对应位。把文件权限掩码设置为0,可以增加该守护进程的灵活性。设置文件权限掩码的

通常方法为umask(0)

close(fd)关闭文件描述符

新建的子进程会从父进程那里继承所有已经打开的文件。

在创建完新的会话后,守护进程已经脱离任何控制终端,应当关闭用不到的文件。

  fdtablesize = getdtablesize();

  for (fd = 0; fd < fdtablesize; fd++)   

 close(fd);

这些被打开的文件可能永远不会被守护进程读或写,但它们一样消耗系统资源,而且可能导致所在的文件系统无法卸载

(编辑:应用网_镇江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读