当我按以下代码列出文件时:
/*
* This program displays the names of all files in the current directory.
*/
#include <dirent.h>
#include <stdio.h>
int main(void)
{
DIR *d;
struct dirent *dir;
d = opendir(".");
if (d)
{
while ((dir = readdir(d)) != NULL)
{
printf("%s\n", dir->d_name);
}
closedir(d);
}
return(0);
}
文件是:
1. client.c
2. deneme.c
3. server.c
4. chat.h~
5. .
6. makefile~
7. udpClient.c~
8. ..
9. udpServer.cpp~
10. client
11. chat.h
12. udpServer.c~
13. server
14. makefile
15. deneme.c~
什么是数字5和8.如果鞋子是一个名为'。'的文件。要么 '..'。为什么会发生。有什么问题?
答案 0 :(得分:3)
POSIX文件系统上的每个目录都包含一个条目.
,它是自身的链接,..
是其父目录的链接。 (根目录是它自己的父目录。)
答案 1 :(得分:1)
''和'..'是两个始终存在的目录,这不是错误。
事实上,如果你在bash上写下
cd .
或
cd ..
它工作正常。
答案 2 :(得分:0)
在您要执行的每个目录列表中,
“”。将始终首先显示,它是当前目录,一旦你做了“。”的“opendir()”,你所在的目录。
“..”将始终显示为第二个,它是上一个目录,即您加入当前目录的目录,
在“..”下面,显示的所有其余部分将是您创建的目录或文件,或者当前目录中已存在的目录或文件“。”,在这种情况下。