对文件系统操作有疑问:在我们执行程序的不同目录中打开文件。
假设我们在以下目录中执行我们的程序:/home/example,我们希望程序转到另一个目录,例如:home/example/Inside/Test,并打开最后一个目录中的所有 txt 文件。
好的,这是一个小代码:
/*variables*/
struct dirent *strdir;
DIR *diro;
struct stat statbuffer;
char *path = /home/example/Inside/test
diro = opendir( path )
/*cheked it opened properly*/
while ( (strdir = readdir(diro)) != NULL ){
stat(strdir->d_name, &statbuffer); /*Gets information of file*/
if (S_ISREG(statbuffer.st_mode)){
/*its regular type*/
/*check its of type txt*/
???
我放???
是因为我使用了fopen,它不起作用。当然不是,因为 /home/example 中不存在该文件。打开也一样。
所以我认为,也许我可以将目录和文件名连接成一个字符以获得完整路径,但这听起来有点难看......
另一个想法是使用 stat 提供给我的信息,但我似乎无法弄清楚如何使其工作。硬链接?