标签:
使用mkdir函数创建目录。
如果成功返回0,失败返回-1.
此函数创建一个新的空目录,其中.和..目录是自动创建的,所指定的访问权限由mode指定。目录至少设置一个执行权限。
实践:
运行结果:
yan@yan-vm:~/apue$./a.out
yan@yan-vm:~/apue$ ll
drwxrwxr-x 4 yan yan 4096 Jul 10 13:25 ./
drwx---rwx 25 yan yan 4096 Jul 10 13:25 ../
drwx------ 2 yan yan 4096 Jul 10 13:25 mkdirtest/
使用rmdir函数可以删除一个空目录,空目录只包含.和..这两项目录。
如果成功则返回0,如果出错返回-1.
实践:
运行结果:
yan@yan-vm:~/apue$ ll mkdirtest/
total 8
drwxrwxr-x 2 yan yan 4096 Jul 10 13:37 ./
drwxrwxr-x 4 yan yan 4096 Jul 10 13:37 ../
yan@yan-vm:~/apue$ ./a.out
yan@yan-vm:~/apue$ ll mkdirtest
ls: cannot access mkdirtest: No such file or directory
如果目录内容不为空,会怎么样?
yan@yan-vm:~/apue$ ll mkdirtest/
total 8
drwxrwxr-x 2 yan yan 4096 Jul 10 13:38 ./
drwxrwxr-x 4 yan yan 4096 Jul 10 13:38 ../
-rw-rw-r-- 1 yan yan 0 Jul 10 13:38 a
yan@yan-vm:~/apue$ ./a.out
rmdir: Directory not empty
删除会出错。
通过以下函数可以读取目录的信息。
其中dirent的结构如下:
实践:
运行结果:
yan@yan-vm:~/apue$ ll dirtest/
total 8
drwxrwxr-x 2 yan yan 4096 Jul 10 14:00 ./
drwxrwxr-x 4 yan yan 4096 Jul 10 14:22 ../
-rw-rw-r-- 1 yan yan 0 Jul 10 13:59 12345
-rw-rw-r-- 1 yan yan 0 Jul 10 14:00 67890
-rw-rw-r-- 1 yan yan 0 Jul 10 13:59 abc
-rw-rw-r-- 1 yan yan 0 Jul 10 13:59 def
-rw-rw-r-- 1 yan yan 0 Jul 10 13:59 ghi
yan@yan-vm:~/apue$ ./a.out dirtest/
d_name:..
d_name:ghi
d_name:abc
d_name:12345
d_name:def
d_name:67890
d_name:.
readdir again.
d_name:..
d_name:ghi
d_name:abc
d_name:12345
d_name:def
d_name:67890
d_name:.
运行结果:
yan@yan-vm:~/apue$ ll dirtest/
total 8
drwxrwxr-x 2 yan yan 4096 Jul 10 14:00 ./
drwxrwxr-x 4 yan yan 4096 Jul 10 14:25 ../
-rw-rw-r-- 1 yan yan 0 Jul 10 13:59 12345
-rw-rw-r-- 1 yan yan 0 Jul 10 14:00 67890
-rw-rw-r-- 1 yan yan 0 Jul 10 13:59 abc
-rw-rw-r-- 1 yan yan 0 Jul 10 13:59 def
-rw-rw-r-- 1 yan yan 0 Jul 10 13:59 ghi
yan@yan-vm:~/apue$ ./a.out dirtest/
d_name:..
d_name:ghi
d_name:abc
d_name:12345
d_name:def
d_name:67890
d_name:.
readdir again.
d_name:..
d_name:ghi
d_name:abc
d_name:12345
d_name:def
d_name:67890
d_name:.
使用getcwd函数获取进程当前工作目录的绝对路径。
如果成功返回buf,失败则返回NULL。
实践:
运行结果:
yan@yan-vm:~/apue$ pwd
/home/yan/apue
yan@yan-vm:~/apue$ ./a.out
path:/home/yan/apue
path:/tmp
yan@yan-vm:~/apue$ pwd
/home/yan/apue
可见,执行程序后,shell的当前目录没有改变,其原因是shell创建一个子进程,由该子进程具体执行程序,由此可见,为了改变
shell进程自己的目录,shell应该直接调用chdir,所以cd命令是直接包含在shell程序中的。
标签:
原文地址:http://www.cnblogs.com/QingCHOW/p/4597796.html