Linux教程

Linux系统API与库函数-3.进程控制

本文主要是介绍Linux系统API与库函数-3.进程控制,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

3. 进程控制

3.1 环境变量

3.1.1 获取环境变量getenv()

帮助手册:man 3 getenv
包含头文件:

  • `#include <stdlib.h>

函数原型:
char *getenv(const char *name);

参数说明
name环境变量
return成功:环境变量的值
失败:NULL

3.1.2 修改或添加环境变量setenv()

帮助手册:man 3 setenv
包含头文件:

  • `#include <stdlib.h>

函数原型:
int unsetenv(const char *name);

参数说明
name环境变量名
value变量值
overwrite当环境变量存在时
0:不重写
非0:重写
return成功:0
失败:-1,并设置errno

3.1.3 删除环境变量unsetenv()

帮助手册:man 3 unsetenv
包含头文件:

  • `#include <stdlib.h>

函数原型:
char *getenv(const char *name);

参数说明
name环境变量名
return成功:0
失败:-1,并设置errno

3.2创建子进程fork()

帮助手册:man 2 fork
包含头文件:

  • #include <sys/types.h>
  • #include <unistd.h>

函数原型:
pid_t fork(void);

fork()后:

  • 父子进程相同处:
    – 全局变量,data, text, 栈,堆,环境变量,用户ID,宿主目录,进程工作目录,信号处理方式…
  • 父子进程不相同处:
    – 进程ID, fork返回值,父进程ID, 进程运行时间,闹钟(定时器),未决信号集

注:父子进程间数据读时共享,写时复制,父子进程不共享全局变量

参数说明
return成功:子进程:0;父进程:子进程PID
失败:-1,并设置errno

3.3 获得当前进程PIDgetpid()

帮助手册:man 2 getpid
包含头文件:

  • #include <sys/types.h>
  • #include <unistd.h>

函数原型:
pid_t getpid(void)

参数说明
return返回当前进程的PID

3.4 获得父进程PIDgetppid()

帮助手册:man 2 getppid
包含头文件:

  • #include <sys/types.h>
  • #include <unistd.h>

函数原型:
pid_t getppid(void)

参数说明
return返回父进程的PID

示例:

#include <stdio.h>
#include <unistd.h>

int main(int argc, char* argv[])
{
	printf("Begin...\n");
	pid_t pid = fork();
	if(pid < 0)
	{
		perror("fork error:");
		return -1;
	}
	if(pid == 0)
		printf("This is child process, PID = %d, PPID = %d\n", getpid(), getppid());
	if(pid > 0)
		printf("This is parent process, pid = %d, PID = %d, PPID = %d\n", pid, getpid(), getppid());
	printf("End...\n");
	return 0;
}

3.5 执行一个文件execl()

帮助手册:man 2 execl
包含头文件:

  • #include <unistd.h>

函数原型:
int execl(const char *pathname, const char *arg, ... /* (char *) NULL */);

参数说明
pathname可执行文件路径
arg
return成功:不返回
失败:-1,并设置errno

3.5 执行一个文件execlp()

帮助手册:man 2 execlp
包含头文件:

  • #include <unistd.h>

函数原型:
int execlp(const char *file, const char *arg, ... /* (char *) NULL */);

参数说明
file可执行文件路径
arg
return成功:不返回
失败:-1,并设置errno
这篇关于Linux系统API与库函数-3.进程控制的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!