getpwuid
struct passwd *getpwuid(uid_t uid);
功能:
根据用户id到/etc/passwd文件下解析获得
结构体信息
参数:
uid:用户id
返回值:
成功返回id对应用户的信息
失败返回NULL
getpwnam
struct passwd *getpwnam(const char *name);
功能:
根据用户名到/etc/passwd文件下解析获得
结构体信息
struct passwd
{
char *pw_name; /* username */
char *pw_passwd; /* user password */
uid_t pw_uid; /* user ID */
gid_t pw_gid; /* group ID */
char *pw_gecos; /* user information */
char *pw_dir; /* home directory */
char *pw_shell; /* shell program */
};
getgrgid
struct group *getgrgid(gid_t gid);
功能:
根据gid到/etc/group文件中解析组信息
参数:
gid:组id
返回值:
成功返回组信息
失败返回NULL
tm = time(NULL);
功能:
获得1970年到现在的秒数
参数:
t:存放秒数的空间首地址
返回值:
成功返回1970年到现在的秒数
失败返回-1
localtime
struct tm *localtime(const time_t *timep);
功能:
将一个秒数转化成日历时间
参数:
timep:保存秒数空间的地址
返回值:
成功返回保存日历时间结构体的指针
失败返回NULL
ctime
char *ctime(const time_t *timep);//date
功能:
将时间秒数转化成字符串
参数:
timep:保存时间空间的地址
返回值:
成功返回获得时间字符串的首地址
失败返回NULL
symlink
int symlink(const char *oldpath, const char *newpath);
功能:
创建一个链接向oldpath文件的新符号链接文件
参数:
oldpath:被链接向的文件的路径
newpath:新符号链接文件
返回值:
成功返回0
失败返回-1
remove
int remove(const char *pathname);
功能:
删除一个文件
参数:
pathname:删除文件的路径
返回值:
成功返回0
失败返回-1
rename //mv rename
int rename(const char *oldpath, const char *newpath);
功能:
将一个老的路径名改为新的路径
参数:
oldpath:老路径名
newpath:新路径名
返回值:
成功返回0
失败返回-1
link ln 1 2
int link(const char *oldpath, const char *newpath);
功能:
创建一个硬链接文件
参数:
oldpath:要链接向的文件
newpath:创建的新硬链接文件
返回值:
成功返回0
失败返回-1
truncate
出错相关函数接口
#include <errno.h>
open(); ==-1 errno
errno.h头文件中声明errno是一个外部存储整型变量
extern int errno;
errno == 0 没有任何错误
errno置位
perror
void perror(const char *s);-->strerror()
功能:
打印s字符串和errno对应的错误信息
参数:
s:要打印在终端上的出错信息
返回值:
缺省
strerror
char *strerror(int errnum);
功能:
打印errnum出错码对应的出错信息
参数:
errnum:出错errno号
返回值:
成功返回对应的错误信息
ruturn 1;
errnum:错误码
format:
类似printf打印
返回值:
缺省
__FILE__ 表示是那个文件
__LINE__表示第几行
__func__表示在那个函数
__DATE__
__TIME__
c 内置宏
Makefile 编写 工程管理工具
vim 编辑器,gcc 编译器 ,gdb 调试器 make
三种格式
a.out:main.c add.c mul.c
gcc main.c add.c mul.c -o a.out
clean:
rm a.out
a.out:main.c add.c mul.c
gcc $^ -o $@
clean:
rm a.out
SRC=main.c
SRC+= add.c mul.c
OBJ=all
FLAG= -g -O2 -Wall
$(OBJ):$(SRC)
gcc $(SRC) -o $(OBJ) $(FLAG)
clean:
rm $(OBJ)