time
函数time_t time(time_t *t);
功能:获取当前时间(自1970年1月1日00:00:00 UTC以来的秒数)。
参数:t
是一个指向 time_t
类型的指针,用于存放返回的时间值。如果传递 NULL
,函数将不
会使用此参数,但仍会返回当前时间。
返回值:成功时返回当前时间(自1970年以来的秒数),失败时返回 (time_t)-1
。注意,在
大多数现代系统上,time
函数几乎不会失败,除非发生了一些极端情况(如系统时间被设置
为未来的某个点,而系统无法处理这种情况)。
localtime
函数struct tm *localtime(const time_t *timep);
功能:将 time_t
类型的时间(秒数)转换为本地时间的 struct tm
结构体表示。
参数:timep
指向包含秒数的 time_t
类型的指针。
返回值:返回一个指向填充好的 struct tm
结构体的指针。如果发生错误(虽然非常罕见),则返
回 NULL
。
struct tm
结构体
struct tm
{
int tm_sec; /* seconds */
int tm_min; /* minutes */
int tm_hour; /* hours */
int tm_mday; /* day of the month */
int tm_mon; /* month */
int tm_year; /* year */
int tm_wday; /* day of the week */
int tm_yday; /* day in the year */
int tm_isdst; /* daylight saving time */
};
注意:返回的指针通常指向一个静态分配的内存区域,这意味着连续调用 localtime
可能会覆盖之
前的结果。
ctime
函数char *ctime(const time_t *timep);
功能:将 time_t
类型的时间(秒数)转换为一个可读的字符串形式。
参数:timep
指向包含秒数的 time_t
类型的指针。
返回值:返回一个指向静态分配的可读时间字符串的指针。连续调用可能会覆盖之前的字符串。如
果发生错误(理论上不太可能),返回 NULL
。
struct passwd *getpwuid(uid_t uid);
功能:根据用户ID(UID)获取用户信息。
参数:uid_t uid
:要查询的用户ID(UID)。
返回值:成功时,返回一个指向passwd
结构体的指针,该结构体包含了对应的用户信息。
失败时,返回NULL
。
功能:根据用户名获取用户信息。
函数构造:struct passwd *getpwnam(const char *name);
参数:const char *name
:要查询的用户名。
返回值:成功时,返回一个指向passwd
结构体的指针,该结构体包含了对应的用户信息。
失败时返回NULL
。
struct group *getgrgid(gid_t gid);
功能:根据组ID(GID)获取组信息。
参数:gid_t gid
:要查询的组ID(GID)。
返回值:成功时,返回一个指向group
结构体的指针,该结构体包含了对应的组信息。失败时,返
回NULL
。
struct group *getgrnam(const char *name);
功能:根据组名获取组信息。
参数:const char *name
:要查询的组名。
返回值:成功时,返回一个指向group
结构体的指针,该结构体包含了对应的组信息。失败时,返
回NULL
。
int symlink(const char *oldpath, const char *newpath);
功能:创建一个指向oldpath
的符号链接newpath
。
参数:const char *oldpath
:原始文件的路径。const char *newpath
:新创建的符号链接的路
径。
返回值:成功时,返回0
。失败时,返回-1
,并设置errno
以指示错误。
int remove(const char *pathname);
功能:删除一个文件。
参数:const char *pathname
:要删除的文件或目录的路径(注意:某些系统可能不允许使用
remove
删除目录)。
返回值:成功时,返回0
。失败时,返回-1
,并设置errno
以指示错误。
int rename(const char *oldpath, const char *newpath);
功能:重命名文件或目录,即将oldpath
指向的文件或目录重命名为newpath
。
参数:const char *oldpath
:原始文件或目录的路径。const char *newpath
:新名称的路径。
返回值:成功时,返回0
。失败时,返回-1
,并设置errno
以指示错误。
int link(const char *oldpath, const char *newpath);
功能:为oldpath
指定的文件创建一个新的硬链接newpath
。
参数:const char *oldpath
:原始文件的路径。const char *newpath
:新硬链接的路径。
返回值:成功时,返回0
。失败时,返回-1
,并设置errno
以指示错误。
int truncate(const char *path, off_t length)
功能:将指定文件的大小截断到指定的长度。如果文件当前的大小大于指定长度,则文件内容会被
截断;如果小于指定长度,则文件大小保持不变(。
参数:path
:指向要截断的文件的路径的字符串。length
:指定文件截断后的长度。
返回值:成功时返回 0。失败时返回 -1,并设置 errno
以指示错误类型。
void perror(const char *s);
功能:打印出由 errno
指示的最后一次系统或库函数调用遇到的错误的描述性消息。
参数:s
:一个指向字符串的指针,该字符串会在错误消息前打印出来,通常用来提供上下文信
息。
返回值:无返回值(void
)。
const char *strerror(int errnum);
功能:将错误码(errno
值)转换为可读的错误信息字符串。
参数:errnum
:错误码,通常是 errno
的值。
返回值:返回一个指向静态分配的错误信息字符串的指针。注意,这个字符串是静态的,因此每次
调用 strerror
时都可能会覆盖上一次调用的结果。
void error(int status, int errnum, const char *fmt, ...);
功能:打印错误信息和退出程序。这是一个非标准的宏,通常在某些特定的库(如 GNU C Library
的 libgen.h
或其他第三方库)中提供。
参数:status
:程序的退出状态码。errnum
:错误码,通常是 errno
的值。fmt
:一个格式字符
串,用于构造错误信息。...
:可变数量的参数,用于与 fmt
中的格式说明符匹配。
返回值:无返回值(void
),但会导致程序退出。