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