进程环境

   获得进程和父进程的 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);