1、strstr函数
strstr
是 C 语言中的一个字符串处理函数,用于在一个字符串中查找子字符串的第一次出现。
函数原型
char *strstr(const char *haystack, const char *needle);
haystack
:要在其中搜索的字符串。needle
:要查找的子字符串。函数返回一个指向第一次出现子字符串的指针,如果子字符串未找到,则返回
NULL
。
2、chdir函数
chdir
是 C 语言中的一个系统调用,用于改变当前工作目录
函数原型
int chdir(const char *path);
path
:要切换到的目标目录的路径。函数返回值:
- 若成功,则返回 0。
- 若失败,则返回 -1,并设置
errno
。
例子
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
int main() {
const char *newDir = "/path/to/new/directory";
if (chdir(newDir) == 0) {
printf("Changed to directory: %s\n", newDir);
} else {
perror("chdir");
exit(EXIT_FAILURE);
}
return 0;
}
在这个例子中,程序尝试切换到指定的目录 newDir
。如果切换成功,就输出相应的消息;如果失败,就通过 perror
输出错误信息。
3、access函数
access
是 C 语言中的一个系统调用,用于检查文件或目录的权限。
函数原型
int access(const char *pathname, int mode);
pathname
:要检查的文件或目录的路径。mode
:权限模式,指定了检查的权限。可以是以下之一:
F_OK
:测试文件是否存在。R_OK
:测试读权限。W_OK
:测试写权限。X_OK
:测试执行权限。函数返回值:
- 若文件或目录具有所需权限,则返回 0。
- 若文件或目录不具有所需权限,则返回 -1,并设置
errno
。
示例
#include <stdio.h>
#include <unistd.h>
int main() {
const char *file = "/path/to/file.txt";
if (access(file, F_OK) == 0) {
printf("File exists.\n");
} else {
perror("access");
}
return 0;
}
在这个例子中,程序通过 access
函数检查文件是否存在。如果文件存在,就输出相应的消息;如果不存在,就通过 perror
输出错误信息。
4、strdup函数
strdup
是 C 语言中的一个函数,用于复制字符串,并返回指向新字符串的指针。
函数原型
char *strdup(const char *str);
str
:要复制的字符串。函数返回一个指针,指向新分配的以 null 结尾的字符串。如果内存分配失败,则返回
NULL
。
strdup
函数返回一个指向新分配字符串副本的指针。需要注意的是,由于它在堆上分配了内存,使用完后需要手动释放这块内存,以防止内存泄漏。