Chinaunix首页 | 论坛 | 博客
  • 博客访问: 61012
  • 博文数量: 26
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 255
  • 用 户 组: 普通用户
  • 注册时间: 2013-09-18 10:40
文章分类

全部博文(26)

文章存档

2013年(26)

我的朋友

分类: LINUX

2013-09-29 15:15:02


了解进程控制,创建,执行,终止。进一步说明进程属性的各种ID-实际,有效,和保存的用户和组ID,以及他们如何受到进程控制原语的影响。解释其文件,system函数,进程会计机制。
#include
pid_t getpid(void) //返回调用进程ID
pid_t getppid(void)//调用进程的父进程ID
uid_t getuid(void)//返回调用进程的实际用户ID
uid_geteuid(void)//调用进程的有效用户ID
gid_t getgid(void)//调用进程的实际组ID
gid_t getegid(void)//调用进程的有效组ID


#include
pid_t fork(void)//创建子进程。子进程返回0,父进程中返回子进程ID,错出返回-1.
子进程不能修改父进程的变量
strlen 不包含符串NULL字节的长度,sizeof计算包括终止NULL字节的缓冲区长度。
fork的两种用法
1)一个父进程希望复制自己,使父子进程同时执行不同的代码。这在网络服务进程常见
2)一个进程要执行的一个不同的程序,子进程从fork()返回后立即调用exec


当调用exec函数时,该进程执行的程序完全替换为新程序,而新程序则从其main()函数开始执行。进程ID没有改变,但是用一个新程序替换乐当前进程的正文,数据,堆和栈段。
#include
int execl(const char *pathname,const char *arg0..)
int execv(const char *pathname....)
int execle
int execve
int execlp(const char *filename );
int execve(const char *filename)


#include
int system(const char *cmdstring);
如果一个进程以特殊的权限(设置用户ID或者设置组ID)运行,它又想生成另一个进程执行另一个程序,则它应该执行fork(),exec,而且在fork之后,exec之前要改回到普通的权限。设置用户ID和设置组ID程序不应该调用system函数。

阅读(672) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~