当前位置: 首页 > news >正文

搜索引擎作弊网站有哪些希爱力跟万艾可哪个猛

搜索引擎作弊网站有哪些,希爱力跟万艾可哪个猛,软件开发培训技术学校,手机 网站 分辨率Linux目录操作详解 1. 获取当前工作目录1.1 getcwd()1.2 get_current_dir_name() 2. 切换工作目录2.1 chdir() 3. 创建和删除目录3.1 mkdir()3.2 rmdir() 4. 获取目录中的文件列表4.1 opendir() 打开目录4.2 readdir() 读取目录内容4.3 closedir() 关闭目录 5. dirent 结构体6.…

Linux目录操作详解

      • 1. 获取当前工作目录
        • 1.1 getcwd()
        • 1.2 get_current_dir_name()
      • 2. 切换工作目录
        • 2.1 chdir()
      • 3. 创建和删除目录
        • 3.1 mkdir()
        • 3.2 rmdir()
      • 4. 获取目录中的文件列表
        • 4.1 opendir() 打开目录
        • 4.2 readdir() 读取目录内容
        • 4.3 closedir() 关闭目录
      • 5. dirent 结构体
      • 6. 示例代码
        • (1) 获取当前工作目录
        • (2)切换工作目录
        • (3)创建和删除目录
        • (4)遍历目录中的文件
        • (5)结合所有操作的示例

本文将介绍常用的Linux目录操作函数,包括获取当前工作目录、切换工作目录、创建和删除目录等操作。

1. 获取当前工作目录

Linux提供了两个常用函数来获取当前工作目录。

1.1 getcwd()

该函数用于获取当前进程的工作目录,并将路径存储在用户提供的缓冲区中。

函数原型:

char *getcwd(char *buf, size_t size);
  • buf:存储当前工作目录路径的缓冲区。
  • size:缓冲区的大小。

如果成功,返回当前工作目录的路径;如果失败,返回NULL,并设置errno。

1.2 get_current_dir_name()

这是一个较为简化的函数,不需要传入缓冲区,它会动态分配内存来存储当前目录的路径。

函数原型:

char *get_current_dir_name(void);

调用此函数后,返回的字符串指向当前工作目录的路径,使用完后需要调用free()来释放内存。

2. 切换工作目录

切换工作目录的操作在文件操作中经常会用到。Linux提供了一个函数chdir()来实现该操作。

2.1 chdir()

该函数用于改变当前进程的工作目录。

函数原型:

int chdir(const char *path);
  • path:目标目录的路径。

返回值:

  • 成功:返回0。
  • 失败:返回-1,errno会被设置为具体的错误码(如目录不存在或权限不足)。

3. 创建和删除目录

3.1 mkdir()

用于创建一个新目录。需要提供目录名和访问权限。

函数原型:

int mkdir(const char *pathname, mode_t mode);
  • pathname:新目录的路径。
  • mode:目录权限,通常使用如0755来设定权限。

返回值:

  • 成功:返回0。
  • 失败:返回-1,errno会设置相应的错误。
3.2 rmdir()

用于删除一个空目录。删除时,目录必须为空。

函数原型:

int rmdir(const char *path);
  • path:需要删除的目录路径。

返回值:

  • 成功:返回0。
  • 失败:返回-1,errno会设置具体的错误原因(如目录非空)。

4. 获取目录中的文件列表

获取目录中的文件列表通常需要遍历目录。Linux提供了一些API来帮助我们打开、读取和关闭目录。

4.1 opendir() 打开目录

函数原型:

DIR *opendir(const char *pathname);
  • pathname:需要打开的目录路径。

返回值:

  • 成功:返回DIR*,即目录流。
  • 失败:返回NULLerrno设置为错误码。
4.2 readdir() 读取目录内容

函数原型:

struct dirent *readdir(DIR *dirp);
  • dirp:通过opendir()获得的目录流。

返回值:

  • 成功:返回指向dirent结构体的指针,其中包含了当前目录项的信息。
  • 失败:返回NULL
4.3 closedir() 关闭目录

函数原型:

int closedir(DIR *dirp);
  • dirp:需要关闭的目录流。

返回值:

  • 成功:返回0。
  • 失败:返回-1。

5. dirent 结构体

在通过readdir()函数获取目录项时,返回的是一个dirent结构体,该结构体定义了目录项的相关信息。

结构体定义:

struct dirent {long d_ino;             // inode编号off_t d_off;            // 偏移量unsigned short d_reclen; // 目录项长度unsigned char d_type;   // 文件类型char d_name[NAME_MAX+1]; // 文件名
};
  • d_name:存储目录项的文件名,最大长度为255字符。
  • d_type:文件类型,可能的值包括普通文件(DT_REG)、目录(DT_DIR)、符号链接(DT_LNK)等。

6. 示例代码

(1) 获取当前工作目录

以下示例展示了如何使用getcwd()get_current_dir_name()获取当前工作目录:

#include <iostream>
#include <unistd.h>
#include <stdlib.h>using namespace std;int main() {// 使用getcwd()获取当前工作目录char path1[256];if (getcwd(path1, sizeof(path1)) != NULL) {cout << "Current working directory (getcwd): " << path1 << endl;} else {perror("getcwd failed");}// 使用get_current_dir_name()获取当前工作目录char *path2 = get_current_dir_name();if (path2 != NULL) {cout << "Current working directory (get_current_dir_name): " << path2 << endl;free(path2);  // 注意释放内存} else {perror("get_current_dir_name failed");}return 0;
}
(2)切换工作目录

示例展示了如何使用chdir()函数来切换工作目录:

#include <iostream>
#include <unistd.h>
#include <stdlib.h>using namespace std;int main() {// 获取当前工作目录char currentDir[256];if (getcwd(currentDir, sizeof(currentDir)) != NULL) {cout << "Current working directory: " << currentDir << endl;} else {perror("getcwd failed");return 1;}// 切换到新的目录if (chdir("/home") == 0) {cout << "Changed working directory to /home" << endl;} else {perror("chdir failed");return 1;}// 获取切换后的工作目录if (getcwd(currentDir, sizeof(currentDir)) != NULL) {cout << "New working directory: " << currentDir << endl;} else {perror("getcwd failed");}return 0;
}
(3)创建和删除目录

以下示例展示了如何使用mkdir()创建目录和rmdir()删除空目录:

#include <iostream>
#include <unistd.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <stdlib.h>using namespace std;int main() {const char *dirName = "testDir";// 创建目录if (mkdir(dirName, 0755) == 0) {cout << "Directory " << dirName << " created successfully." << endl;} else {perror("mkdir failed");return 1;}// 删除目录if (rmdir(dirName) == 0) {cout << "Directory " << dirName << " deleted successfully." << endl;} else {perror("rmdir failed");return 1;}return 0;
}
(4)遍历目录中的文件

以下示例展示了如何使用opendir(), readdir(), 和 closedir()来遍历目录中的文件:

#include <iostream>
#include <dirent.h>
#include <unistd.h>
#include <sys/types.h>
#include <stdlib.h>using namespace std;int main() {const char *dirName = "/home";// 打开目录DIR *dir = opendir(dirName);if (dir == NULL) {perror("opendir failed");return 1;}struct dirent *entry;// 遍历目录中的文件cout << "Files in directory " << dirName << ":" << endl;while ((entry = readdir(dir)) != NULL) {cout << "File: " << entry->d_name << endl;}// 关闭目录closedir(dir);return 0;
}
(5)结合所有操作的示例

以下是一个较为完整的示例,结合了获取当前目录、切换目录、创建目录和遍历目录等操作:

#include <iostream>
#include <unistd.h>
#include <dirent.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <stdlib.h>using namespace std;int main() {char currentDir[256];// 获取当前工作目录if (getcwd(currentDir, sizeof(currentDir)) != NULL) {cout << "Current working directory: " << currentDir << endl;} else {perror("getcwd failed");return 1;}// 创建目录const char *dirName = "exampleDir";if (mkdir(dirName, 0755) == 0) {cout << "Directory " << dirName << " created successfully." << endl;} else {perror("mkdir failed");return 1;}// 切换到新创建的目录if (chdir(dirName) == 0) {cout << "Changed to directory " << dirName << endl;} else {perror("chdir failed");return 1;}// 获取切换后的工作目录if (getcwd(currentDir, sizeof(currentDir)) != NULL) {cout << "New working directory: " << currentDir << endl;} else {perror("getcwd failed");}// 列出当前目录中的文件DIR *dir = opendir(".");if (dir == NULL) {perror("opendir failed");return 1;}struct dirent *entry;cout << "Files in the current directory:" << endl;while ((entry = readdir(dir)) != NULL) {cout << "File: " << entry->d_name << endl;}// 关闭目录closedir(dir);// 删除目录if (rmdir(dirName) == 0) {cout << "Directory " << dirName << " deleted successfully." << endl;} else {perror("rmdir failed");return 1;}return 0;
}
http://www.mmbaike.com/news/89609.html

相关文章:

  • 国内高端网站定制网站流量数据
  • 网站如何搬家cms快速建站
  • 合肥专业做网站互联网广告公司排名前十
  • 做网站如何赚广费网站分析报告范文
  • 甘肃网站建设费用新东方英语线下培训学校
  • axure rp 做网站原型怎么关闭seo综合查询
  • 长沙seo技术培训网站优化培训
  • 做网站套模板网络营销推广公司有哪些
  • 经典网站设计seo网页优化平台
  • 网站主机安全营销的手段和方法
  • 招聘网站哪个好用社交网络的推广方法有哪些
  • 网站建设实训报告2000字苏州关键词seo排名
  • 创新优典网站建设竞价推广工作内容
  • 如何做自己网站平台网站seo标题是什么意思
  • 网站步骤温州seo品牌优化软件
  • 网站外部链接怎么做如何编写一个网站
  • 微网站免费软件电商网站建设定制
  • 黑黄logo网站外贸网站seo教程
  • 上海网站开发建设价格推广普通话内容100字
  • 做简历网站'怎样给自己的网站做优化
  • 沈阳市城乡建设网站百度平台我的订单
  • 用网站的源代码怎么做网站南昌百度网站快速排名
  • 招聘网站可以做两份简历吗如何做网站 新手 个人 教程
  • wordpress星评分北京做seo的公司
  • 网站做签到功能百度24小时人工电话
  • 建个人网站做导购怎么备案软件开发公司
  • 网站首页flash动画制作百度seo怎么收费
  • 中山企业网站建设方案seo在中国
  • 正规品牌网站设计地址培训总结精辟句子
  • 外贸电商网站开发html网页制作模板代码