linux之进程线程

1.pid唯一描述一个进程

getpid()函数返回进程ID号,getppid返回其父进程的id号

返回类型为pid_t型--通过typedef定义为unsigned int

 2.fork()函数:以父进程为蓝本复制一个进程,执行一次返回两次。

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

返回-1创建失败

返回0在子进程中执行。

返回进程ID号在父进程中执行

3.system()函数:阻塞当前进程去执行特定的命令,直到执行完毕。

#Include<stdlib.h>

int system(const char *command);

返回值: 失败返回-1,sh不能执行,返回127.成功返回进程状态值

4.exec()函数系列:代替原来的进程,pid号也相同

5.用户态初始进程init()

查看进程关系树命令:pstree

 5.管道

#include<unistd.h>

int pipe(int filedes[2]);    //参数为文件描述符的数组,保存管道返回的两个文件描述符

即fd1(写操作二创建和打开)的输出变成了fd0(读操作)输入

执行成功返回0;失败返回-1

父子进程通信:

 write函数定义如下:

#include <unistd>
ssize_t write(int filedes, void *buf, size_t nbytes);
// 返回:若成功则返回写入的字节数,若出错则返回-1
// filedes:文件描述符
// buf:待写入数据缓存区
// nbytes:要写入的字节数
read函数定义:
#include <unistd> ssize_t read(int filedes, void *buf, size_t nbytes); // 返回:若成功则返回读到的字节数,若已到文件末尾则返回0,若出错则返回-1 // filedes:文件描述符 // buf:读取数据缓存区 // nbytes:要读取的字节数
6.linux创建管道
mkfifo lsy
用ls -al 查看管道文件属性为p
7.linux下的线程

原文地址:https://www.cnblogs.com/luoshiyong/p/10282578.html