码迷,mamicode.com
首页 > 系统相关 > 详细

Linux编程-回忆录三

时间:2015-03-22 00:20:43      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:

====系统环境====
#include <unistd.h>
pid_t getpid(void);
得到当前进程的进程ID号,永远成功

#include <stdlib.h>
char *getenv(const char *name);
得到给定环境变量名称的值,如果没有该变量,返回NULL值

#include <stdlib.h>
int putenv(char *string);
添加一个新的环境变量,传入的字符串格式为: "name=value"
传入的string会成为系统环境变量的一部分,也就是说,string不能是局部变量
或者是自动变量,错误返回-1值,添加成功返回0

#include <stdlib.h>
int setenv(const char *name, const char *value, int overwrite);
作用同上,不过比putenv更安全,该函数会在环境变量表分配空间,添加该
环境变量,如果overwrite非0,已有同名的环境变量会被覆盖,返回0表示
成功,-1表示错误

#include <stdlib.h>
int unsetenv(const char *name);
删除一个环境变量,返回0表示删除成功,-1表示删除失败,或者没有该环境变量

====内存分配====
#include <stdlib.h>
void *malloc(size_t size);
分配size大小的内存,并返回指向该内存的地址指针,返回NULL表示分配出错

#include <stdlib.h>
void free(void *ptr);
释放内存,同一指针不能释放两次,否则段错误

include <stdlib.h>
void *calloc(size_t numitems, size_t size);
分配并返回numitems个size大小的连续内存,并清空内存,字节全置
为0值,返回NULL表示分配出错

include <stdlib.h>
void *realloc(void *ptr, size_t size);
重新设置已经分配的ptr内存的大小为size,返回新的内存地址
指针,返回NULL表示出错

====用户和组====
/etc/passwd     用户密码文件
/etc/shadow     用户影子密码文件
/etc/group      用户分组信息文件

#include <pwd.h>
struct passwd *getpwnam(const char *name);
struct passwd *getpwuid(uid_t uid);
使用用户名或是用户ID号获取系统用户的账号信息, 成功都返回
一个指针,返回NULL表示出错,获取的信息来自/etc/passwd文件

#include <grp.h>
struct group *getgrnam(const char *name);
struct group *getgrgid(gid_t gid);
使用组名,或是组ID号获取系统用户组的信息,成功都返回一个
指针,返回NULL表示出错

#include <pwd.h>
struct passwd *getpwent(void);
void setpwent(void);
void endpwent(void);
getpwent从/etc/passwd文件中按序获取用户的信息,成功返回一个
指针,返回NULL表示获取完毕,需要循环调用该函数
getpwent获取完毕后,调用endpwent函数关闭清理资源
setpwent函数用来重置当前的用户信息为文件的第一条用户记录

#include <shadow.h>
struct spwd *getspnam(const char *name);
获取一个账户的shadow密码信息

struct spwd *getspent(void);
void setspent(void);
void endspent(void);
作用同getpwent函数系列,一个个获取账户的密码信息

#include <unistd.h>
uid_t getuid(void);
uid_t geteuid(void);
gid_t getgid(void);
gid_t getegid(void);
获取账户的用户ID,组ID,有效用户ID,有效组ID
用户ID是指运行该程序的实际拥有者
组ID是指运行该程序的实际用户组
有效用户ID是指执行一定权限任务的用户ID
有效组ID是指执行一定权限任务的用户组ID

include <unistd.h>
int setuid(uid_t uid);
int setgid(gid_t gid);
设置用户ID/组ID,成功返回0,错误返回-1

#include <unistd.h>
int seteuid(uid_t euid);
int setegid(gid_t egid);
设置有效权限的用户ID/组ID,成功返回0,错误返回-1

 

Linux编程-回忆录三

标签:

原文地址:http://www.cnblogs.com/y2ghost/p/4356460.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!