免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 722 | 回复: 0
打印 上一主题 下一主题

Linux多进程编程(一) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-02-24 10:10 |只看该作者 |倒序浏览

一、进程的定义:程序执行和资源管理的最小单位。
二、进程控制:
(1)进程标识:
进程标识
子进程号
父进程号
头文件
#include
#include
函数功能
取得当前进程的进程号
取得当前进程的父进程号
函数原型
Pid_t getpid(void)
Pid_t getppid(void)
函数返回值
成功返回进程的进程标识符
  成功返回父进程的进程标识符
注:Pid_t其实是一个typedef类型,相当于unsigned int.
例:
#include
#include
int main()
{
   printf("系统分配的进程号是:%d\n",getpid());
   printf("系统分配的父进程号是:%d\n",getppid());
   return 0;
}
(2)进程的创建:
    1)exec族函数:
头文件
#include
原型
int execl(const chat *path,const char *args,...)
int execv(const char *path,char const *argv[])
int execle(const cahr *path,const char *arg,...,char *const envp[])
int execve(const char *path,char *const argv[],char *const envp[])
int execlp(const char *file,char *arg,...)
int execvp(const cahr *file,char *const argv[])
返回
返回-1表示出错
由于比较多,在此只举例execve函数:
#include
#include
int main()
{
   char *args[]={"/usr/bin/vim",NULL};
   printf("系统分配的进程号是:%d\n",getpid());
   if(execve("/usr/bin/vim",args,NULL)
头文件
#include
功能
在进程中开始另一个进程
原型
int system(const char *string)
传入值
系统变量
返回值
成功则返回执行shell命令后的返回值,调用/bin/sh数百返回127,其他
失败返回-1,三叔string为空返回非零值
例:
#includeLinux博客/红联Linux博客l~
vQ*V!`N3dV
#include
$]co Q1T*qF,v[+k6y'\0int main()
["FpI*u.l|t
gh0{
{Y Bk&X0 int newret;
4` O
Ne3O-m0 printf("系统分配的进程号是:%d\n",getpid());Linux博客/红联Linux博客!UM2?W:H FK        FN}
newret=system("ping group.google.com/group/linuxerfamily");Linux博客/红联Linux博客@
I4G,WV%zau
return 0;
0f
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP