2019-05-19 进程常用函数

进程常用函数

fork()

  • 用于创建进程的函数返回一个整数值
  • 返回0表示创建成功,且0为子进程的进程号
  • 返回-1表示创建失败

getpid(),getppid()

  • getpid()用于返回当前进程的pid(进程标识符)
  • getppid()用于返回当前进程的父进程的pid

setpgrp(),getpgrp()

  • setpgrp()返回新的组进程标识符
  • getpgrp()获得当前组的进程标识符
#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>

int main()
{
    pid_t pid;
    if((pid=fork())==-1)        //创建进程
        perror("fork");         //返回失败原因
    else if(pid==0)
    {
        printf("child_pid pid=%d\n",getpid());      //返回当前进程的标识符
        exit(0);
    }
    sleep(3);
    system("ps");
    exit(0);
}

exit(),_exit()

  • void exit(int status)
  • 用来正常结束当前进程的执行并把status返回给父进程,进程所有的缓冲区数据自动协会,并关闭未关闭的文件。
  • void _exit(int status)
  • 用来立即结束当前进程,并把参数status返回给父进程,并关闭未关闭的文件。并且向父进程传递SIGCHLD信号给父进程,父进程由wait函数获取子进程当前状态。(_e不会处理I/O缓冲去,若需要更新缓冲去请用exit()).

getresuid(), getresgid()

getresuid, getresgid获取真正的,you'xian和保存的用户或组ID

  • 看一下Linux函数库的源码
#define _GNU_SOURCE         /* See feature_test_macros(7) */
       #include <unistd.h>

       int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid);
       int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid);

返回值成功返回零,错误返回-1
"RETURN VALUE
On success, zero is returned. On error, -1 is returned, and errno is set appropriately."

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Linux 进程管理与程序开发 进程是Linux事务管理的基本单元,所有的进程均拥有自己独立的处理环境和系统资源,...
    JamesPeng阅读 2,614评论 1 14
  • ### main函数执行之前做了什么?(iOS) & dyld 是Apple 的动态链接器;在 xnu 内核为程...
    天使君阅读 779评论 0 1
  • 一、Linux系统概述 不加引号可理解为宏,直接替换,单引号中特殊字符会被解释为普通字符,双引号中$,,'还是特殊...
    赤果_b4a7阅读 1,645评论 0 2
  • 进程概念 进程是程序在计算机上执行一次的过程,也就是一个执行中的程序,进程是一个独立的逻辑控制流,独占处理器,相当...
    秋风弄影阅读 354评论 0 0
  • 总结了一些开发中常用的函数: usleep() //函数延迟代码执行若干微秒。 unpack() //函数从二进制...
    ADL2022阅读 564评论 0 3

友情链接更多精彩内容