zoukankan      html  css  js  c++  java
  • 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下的线程

  • 相关阅读:
    (57)C# frame4 调用frame2
    (56)C# 读取控制台程序
    (55)C# windows 消息
    (54) C# 调用 kernel32.dll
    (53)C# 工具
    C++ hello world
    postgresql时间处理
    ext中grid根据数据不同显示不同样式
    log4j入门
    敏感数据加密
  • 原文地址:https://www.cnblogs.com/luoshiyong/p/10282578.html
Copyright © 2011-2022 走看看