首页 > 系统相关 >八、进程相关函数

八、进程相关函数

时间:2022-12-24 18:46:19浏览次数:34  
标签:头文件 函数 返回值 进程 相关 include const

相关函数: abort

头文件  : #include <stdlib.h>

函数原型: void abort(void);

函数说明: 引起进程异常终止,此时所有已打开的文件流会自动关闭,缓冲区里的数据也会自动写回

返回值  : 无

相关函数: assert

头文件  : #include <assert.h>

函数原型: void assert(int expression);

函数说明: 该函数会判断参数expression是否成立。若不成立则会显示错误信息并调用abort来终止进程

返回值  : 无

相关函数: exit

头文件  : #include <stdlib.h>

函数原型: void exit(int status);

函数说明: 用来正常终止目前进程的执行,并把参数status返回给父进程。进程所有的缓冲区数据会自动写回并关闭所有的文件

返回值  : 无

相关函数: _exit

头文件  : #include <unistd.h>

函数原型: void _exit(int status);

函数说明: 用来立刻终止目前进程的执行,并把参数status返回给父进程。但不会处理缓冲区数据和打开的文件

返回值  : 无

相关函数: fork

头文件  : #include <unistd.h>

函数原型: pid_t fork(void);

函数说明: 创建一个新的子进程,子进程会复制父进程的数据和堆栈空间,并继承父进程的用户代码、组代码、环境变量、已打开的文件等。

返回值  : 若成功在父进程返回新创建的子进程的进程号,而在子进程中返回0;如果失败则返回-1

相关函数: getpid

头文件  : #include <unistd.h>

函数原型: pid_t getpid(void);

函数说明: 取得当前进程的进程号

返回值  : 当前进程的进程号

相关函数: getppid

头文件  : #include <unistd.h>

函数原型: pid_t getppid(void);

函数说明: 取得当前进程的父进程的进程号

返回值  : 当前进程父进程的进程号

相关函数: system

头文件  : #include <stdlib.h>

函数原型: int system(const char *string);

函数说明: 该函数会调用fork创建子进程,由子进程来执行参数string代表的命令

返回值  : 调用成功时会返回执行命令后的返回值,否则要检查errno来确定原因

相关函数: wait

头文件  : #include <sys/types.h>

           #include <sys/wait.h>

函数原型: pid_t wait(int *status);

函数说明: 暂停当前进程的执行,直到有信号来或子进程结束。如果在调用wait时子进程已经结束,则会立刻返回。子进程的结束状态值由参数status返回

返回值  : 结束的子进程的进程号

相关函数: waitpid

头文件  : #include <sys/types.h>

           #include <sys/wait.h>

函数原型: pid_t waitpid(pid_t pid, int *status, int options);

函数说明: 暂停当前进程的执行,直到有信号来或子进程结束。如果在调用waitpid时子进程已经结束,则会立刻返回。子进程的结束状态值由参数status返回

           参数pid含义如下:

               pid < -1    等待进程组号等于pid绝对值的任何子进程

               pid = -1    等待任何子进程,相当于wait

               pid = 0     等待进程组号与当前进程相同的任何子进程

               pid > 0     等待进程号为pid的子进程

           参数options含义如下:

0 阻塞父进程,等待子进程退出

                WNOHANG    如果没有子进程退出立刻返回

              WUNTRACED    如果子进程进入暂停状态则马上返回

返回值  : 如果执行成功则返回子进程号,如果有错误发生则返回-1,失败原因保存于errno中

相关函数: execl

头文件  : #include <unistd.h>

函数原型: int execl(const char *path, const char *arg, …);

函数说明: execl用来执行参数path字符串所代表的文件,后面的参数代表执行该文件时传递过去的参数argv[0]、argv[1]…,最后一个参数必须是NULL

返回值  : 若执行成功则函数不会返回,执行失败则返回-1,失败原因保存于errno中

相关函数: execle

头文件  : #include <unistd.h>

函数原型: int execle(const char *path, const char *arg, …, char *const envp[]);

函数说明: execle用来执行参数path字符串所代表的文件,后面的参数代表执行该文件时传递过去的参数argv[0]、argv[1]…,最后一个参数必须指向一个新的环境变量数组,此数组会成为新执行进程的环境变量

返回值  : 若执行成功则函数不会返回,执行失败则返回-1,失败原因保存于errno中

相关函数: execlp

头文件  : #include <unistd.h>

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

函数说明: execlp会从PATH环境变量包含的路径中查找符合参数file的文件名,找到后执行该文件,然后将后面的参数当作argv[0]、argv[1]…,最后一个参数必须是NULL

返回值  : 若执行成功则函数不会返回,执行失败则返回-1,失败原因保存于errno中

相关函数: execv

头文件  : #include <unistd.h>

函数原型: int execv(const char *path, char *const argv[]);

函数说明: execl用来执行参数path字符串所代表的文件,参数argv是一个指针数组,相当于execl中后面的多个参数都用指针数组传递给执行文件

返回值  : 若执行成功则函数不会返回,执行失败则返回-1,失败原因保存于errno中

相关函数: execve

头文件  : #include <unistd.h>

函数原型: int execve(const char *path, char *const argv[], char *const envp[]);

函数说明: execve用来执行参数path字符串所代表的文件,第二个参数利用指针数组来传递给执行文件,最后一个参数传递新的环境变量

返回值  : 若执行成功则函数不会返回,执行失败则返回-1,失败原因保存于errno中

相关函数: execvp

头文件  : #include <unistd.h>

函数原型: int execvp(const char *file, char *const argv[]);

函数说明: execvp从环境变量PATH包含的路径里查找文件file,找到后执行该文件,然后将第二个参数argv传递给要执行的文件

返回值  : 若执行成功则函数不会返回,执行失败则返回-1,失败原因保存于errno中

标签:头文件,函数,返回值,进程,相关,include,const
From: https://www.cnblogs.com/cnetsa/p/17003189.html

相关文章

  • Go 快速入门指南 - defer 函数
    概述一个 ​​defer​​ 语句就是一个普通的函数或方法调用。 ​​defer​​ 语句保证了不论是在正常情况下(return返回),还是非正常情况下(发生错误,程序终止),函数......
  • Go 快速入门指南 - panic/recover 函数
    panic​​panic​​​ 会终止程序并退出,因此只有在发生严重的错误时才会使用 ​​panic​​。例子主动触发packagemainfuncmain(){panic("someerror...")}//$go......
  • Go 快速入门指南 - 函数
    概述​​函数​​ 是将一个或者一类问题包装为一个代码块,可以被多次调用,提高代码重用性。Go函数中声明、定义、参数、返回值这些基础概念,和其他编程语言中的一致,这里不再......
  • Go 快速入门指南 - init 函数
    概述​​init()函数​​ 是一个特殊的函数,一般称为初始化函数,不能被调用。 在每个文件里面,当程序启动或者文件被作为包引用的时候,init()函数就会自动执行,一般用来做一......
  • C语言函数递归解决汉诺塔问题代码演示(带详细注释)
    //1.汉诺塔问题/*  1个盘子:A->C1  2个盘子:A->BA->CB->C  3个盘子:A->CA->BC->BA->CB->AB->CA->C*/////voidmove(charpos1,charpos2)//{......
  • 相关函数: memcmp
    头文件 :#include<string.h>函数原型:intmemcpy(constvoid*s1, constvoid*s2, size_tn);函数说明:比较s1和s2所指向内存区域前n个字节返回值 :若完全相......
  • 相关函数: memcpy
    相关函数:memcpy头文件 :#include<string.h>函数原型:void*memcpy(void*dest, constvoid*src, size_tn);函数说明:拷贝src所指向的内存前n个字节到dest所......
  • 相关函数: strncat
    头文件 :#include<string.h>函数原型:char*strncat(char*dest, constchar*src, size_tn);函数说明:将参数str指向的字符串拷贝n个字符到参数dest所指向的字......
  • 相关函数: strncmp
    头文件 :#include<string.h>函数原型:intstrncmp(constchar*s1, constchar*s2, size_tn);函数说明:比较参数s1和s2所指向的字符串的前n个字符返回值 :若......
  • 相关函数: strcmp
    头文件 :#include<string.h>函数原型:intstrcmp(constchar*s1, constchar*s2);函数说明:比较参数s1和s2所指向的字符串返回值 :若字符串相等则返回0;若字符......