我一直在阅读 Brian Kernighan 和 Dennis Ritchie - C 编程语言,第 8.6 章是关于 UNIX 操作系统下的目录列表的。他们说一切,甚至目录都是文件。这意味着我应该能够将目录作为文件打开?我已经尝试使用 stdio 函数,但没有成功。现在,我正在尝试使用 UNIX 系统功能。当然,我用的不是UNIX,而是Ubuntu linux。这是我的代码:
#include <syscall.h>
#include <fcntl.h>
int main(int argn, char* argv[]) {
int fd;
if (argn!=1) fd=open(argv[1],O_RDONLY,0);
else fd=open(".",O_RDONLY,0);
if (fd==-1) return -1;
char buf[1024];
int n;
while ((n=read(fd,buf,1024))>0)
write(1,buf,n);
close (fd);
return 0;
}
即使 argn 为 1(无参数)并且我正在尝试读取当前目录,这也不会写入任何内容。
有什么想法/解释吗? :)
文件也称为regular files
以将它们与special files
.
目录或不是regular file
。最常见的special file
是目录。目录文件的布局由所使用的文件系统定义。
So use opendir http://linux.die.net/man/3/opendir打开目录。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)