找到當前目錄
char* getcwd(char*buf,size_t size);
//將當前工作目錄的絕對路徑名複製到buf中,size指示buf大小,如果buf不夠大,裝不下該路徑,則getcwd函數返回NULL
int main(void)
{
char buf[1024]={0};
char* fd = getcwd(buf,sizeof(buf));
if(fd==NULL)
{
printf("%s\n",strerror(errno));
}
printf("%s\n",buf);
return 0;
}
*用戶在根目錄\下,無權限對宿主(家)目錄下的文件進行操作
操作目錄
DIR *opendir(const char* pathname); //打開目錄,如果錯返回NULL
struct dirent readdir(DIR *dir)
int closedir(DIR *dir)
以上都包含在dirent.h頭文件中
int main(int arg,char* args[])
{
DIR *dir;
struct dirent *dirp;
dir = opendir(args[1]);
if(dir==NULL)
{
printf("%s\n",strerror(errno));
return 0;
}
while((dirp=readdir(dir))!=NULL)
{
printf("%s\t%d\n",dirp->d_name,dirp->d_type);
}
closedir(dir);
return 0;
}
struct dirent {
ino_t d_ino; /* inode number */
off_t d_off; /* offset to the next dirent */
unsigned short d_reclen; /* length of this record */
unsigned char d_type; /* type of file */
char d_name[256]; /* filename */
};