如果,想要深入的学习Linux系统调用中mkdir,rmdir,rename,chdir,getcwd等这些有关于操作目录函数,还是需要去自己阅读Linux系统中的帮助文档。
具体输入命令:
man 2 mkdir/rmdir/rename/chdir/getcwd
即可查阅到完整的资料信息。
mkdir函数是Linux系统API中的一员,它的作用是:创建一个目录
它的函数原型是长这样的:
int mkdir(const char *pathname, mode_t mode);
接下来,我来介绍一下它的两个参数与返回值
参数:
pathname: 创建的目录的路径
mode: 权限,八进制的数,最终你创建出来的文件权限是:mode & (~umask)
返回值:
成功返回0, 失败返回-1
关于Linux中权限知识不懂的同学,可以看这篇文章详解Linux文件类型与权限
在使用这个函数之前,我们需要往C/C++文件中导入这些头文件:
#include
#include
下面用一个代码例子来演示一下mkdir函数的作用:
#include
#include
#include
int main() {
int ret = mkdir("aaa",0777);
if(ret == -1) {
perror("mkdir");
return -1;
}
return 0;
}
查看一下创建好的文件信息
nowcoder@nowcoder:~/Linux/lession14$ ls -dl aaa
drwxrwxrwx 2 nowcoder nowcoder 4096 3月 3 22:01 aaa
顺便来讲一下这个函数的Linux命令把,使用命令创建一个目录:mkdir 目录名
这个函数只能删除空目录,作用比较小,就不演示了,如果同学们想要去了解,输入命令:
man 2 rmdir
自行查看说明文档即可
对于的Linux命令可以是rmdir 空文件名
rename函数是Linux系统API中的一员,它的作用是:
它的函数原型是长这样的:
int rename(const char *oldpath, const char *newpath);
接下来,我来介绍一下它的两个参数与返回值
参数:
oldpath: 旧的文件名(路径)
newpath:新的文件名(路径)
返回值:
成功返回0, 失败返回-1
在使用这个函数之前,我们需要往C/C++文件中导入这个头文件:
#include
下面用一个代码例子来演示一下rename函数的作用:
#include
int main() {
int ret = rename("aaa", "bbb");
if(ret == -1) {
perror("rename");
return -1;
}
return 0;
}
至此文件aaa就被修改为bbb了。
这个rename函数与Linux命令mv
的作用是相同的,重命名或移动文件的位置。
chdir函数是Linux系统API中的一员,它的作用是:修改进程的工作目录。
它的函数原型是长这样的:
int chdir(const char *path);
接下来,我来介绍一下它的参数与返回值
参数:
path: 修改后的进程的工作目录
返回值:
成功返回0, 失败返回-1
在使用这个函数之前,我们需要往C/C++文件中导入这个头文件:
#include
chdir函数是Linux系统API中的一员,它的作用是:获取当前的工作目录
它的函数原型是长这样的:
char *getcwd(char *buf, size_t size);
接下来,我来介绍一下它的参数与返回值
参数:
buf: 一个传出数组,用来存储当前进程工作目录的路径。
size:数组的大小
返回值:进程工作目录的路径。
在使用这个函数之前,我们需要往C/C++文件中导入这个头文件:
#include
现在介绍完了这两个函数,接下来让我用一个例子来展示这两个函数的用法。
#include
#include
#include
#include
#include
// int open(const char *pathname, int flags, mode_t mode);
// char *getcwd(char *buf, size_t size);
// int chdir(const char *path);
int main()
{
char buf[100];
getcwd(buf, 100);
printf("当前的工作路径为:%s\n", buf);
int ret = chdir("../lession13");
if (ret == -1)
{
perror("chdir");
return -1;
}
printf("将工作路径修改为:%s\n", "../lession13");
int fd = open("chdir", O_CREAT | O_RDWR, 0664);
if (fd == -1)
{
perror("open");
return -1;
}
close(fd);
char buf1[100];
getcwd(buf1, 100);
printf("当前的工作路径为:%s\n", buf1);
return 0;
}
代码输出结果为:
nowcoder@nowcoder:~/Linux/lession14$ ./chdir
当前的工作路径为:/home/nowcoder/Linux/lession14
将工作路径修改为:../lession13
当前的工作路径为:/home/nowcoder/Linux/lession13
今天学习的Linux系统调用有关于操作目录的函数共有这些mkdir,rmdir,rename,chdir,getcwd。实际操作下来还是十分有意思的。