进程环境 获得进程和父进程的 ID 用户 ID 设置用户和组的获得系统名 ID 进程组 获得进程组 ID系统标志 时间 环境变量 终端标志 可配置的系统变量
进程环境
获得进程和父进程的 ID
#include <sys/types.h>
//返回调用进程的进程 ID
pid_t getpid(void);
//返回调用进程的进程 ID
pid_t getppid(void);
用户 ID
获得真实用户,有效用户,真是组,有效组的 ID
#include <sys/types.h>
//返回调用进程的真实用户 ID
uid_t getuid(void);
//返回调用进程的有效用户 ID
uid_t geteuid(void);
//返回调用进程的真实组 ID
gid_t getgid(void);
//返回调用进程的有效组的 ID
gid_t getegid(void);
设置用户和组的 ID
#include <sys/types.h>
//根据进程的权限设置真实用户 ID,有效用户 ID,真实组 ID,有效组 ID
int setuid(uid_t uid);
int setgid(gid_t gid);
获得辅助组 ID
#include <sys/types.h>
//在队列的组列表中填入调用进程的辅助组 ID
// grouplist: 组列表中的元素个数
int getprops(int gidsetsize, gid_t grouplist[]);
获得用户名
//返回一个指针,指向与调用进程相关的用户名
char *getlogin(void)
进程组
获得进程组 ID
#include <sys/types.h>
//返回调用进程的进程组 ID
pid_t getpgrp(void);
创建会议并且设置进程组 ID
#include <sys/types.h>
/*调用进程不是进程组的引导者,则将创建一个新的会议
*调用进程为 新会议的会议引导者,为新进程组的引导,没有控制终端
*进程组的ID 等于该调用进程的 ID
*/
pid_t setsid(void);
为作业控制设置进程组 ID
#include <sys/types.h>
//{_POSIX_JOB_CONTROL}被定义,则用来加入已经存在的进程组或者创建一个新的进程组
int setpgid(pid_t pid, pid_t pgid);
系统标志
获得系统名
#include <sys/utaname.h>
//存储了鉴别当前操作系统的信息
int uname(struct utsname *name);
时间
得到系统时间
#include <time.h>
/*
*返回自从一时间点以来的某个时间值,单位:s
*tloc:指向一个时间值所存储的地方
*/
time_t time(time_t *tloc);
获得进程时间
#include <sys/times.h>
/*
* buffer 指向一个结构,该函数向该结构填写有关时间的信息
* Clock_t 和 tms 结构在<sys/times.h>中定义
*/
clock_t times(struct time *buffer);
环境变量
获取环境
#include <stdlib.h>
/*
*环境列表查找字符串 name=value
* 返回指向value 的指针
*没找到,则返回 NULL
*/
char *getenv(const char *name);
终端标志
产生终端路径
#include <stdio.h>
/*
*产生一个字符串,作为路径名,提交到当前进程的当前控制终端
*/
char Ictermid(char *s);
确定终端设备名
//返回一个指针指向一个字符串,它包含了与文件描述符 fildes 相关的终端名
//fildes: 一个有效的与终端联系的文件描述符
char *ttyname(int fildes);
//返回: 1,否则返回:0
int isatty(int fildes);
可配置的系统变量
获得可配置的系统变量
#include <unistd.h>
/*
*提供了一个应用方法来决定可配置系统变量的当前值
*name :所查询的系统变量
*/
long sysconf(int name);