strstr函数、chdir函数、access函数、strdup函数的介绍

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 函数返回一个指向新分配字符串副本的指针。需要注意的是,由于它在堆上分配了内存,使用完后需要手动释放这块内存,以防止内存泄漏。

相关推荐

  1. linux C函数strdup函数分析和getopt_long()使用

    2024-03-12 05:08:02       54 阅读
  2. Python函数——函数介绍

    2024-03-12 05:08:02       56 阅读
  3. Python——函数介绍

    2024-03-12 05:08:02       54 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-12 05:08:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-12 05:08:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-12 05:08:02       87 阅读
  4. Python语言-面向对象

    2024-03-12 05:08:02       96 阅读

热门阅读

  1. 使用docker搭建squoosh

    2024-03-12 05:08:02       39 阅读
  2. 如何防范企业内部安全威胁?

    2024-03-12 05:08:02       33 阅读
  3. Minio docker容器化部署配置详情

    2024-03-12 05:08:02       42 阅读
  4. 二叉树的层序遍历

    2024-03-12 05:08:02       42 阅读
  5. 服务器访问慢怎么办

    2024-03-12 05:08:02       39 阅读
  6. 【力扣100】198.打家劫舍

    2024-03-12 05:08:02       41 阅读
  7. springboot参数传递总结

    2024-03-12 05:08:02       36 阅读
  8. json 基本上面试题目比较常问

    2024-03-12 05:08:02       43 阅读
  9. 大数据笔记

    2024-03-12 05:08:02       36 阅读
  10. C 语言中 #define 预处理器指令

    2024-03-12 05:08:02       38 阅读