相关疑难解决方法(0)

C中的int main()vs void main()

在C中,我知道int main()返回一个int,其中void main()没有.除此之外,他们之间有区别吗?第一个好于第二个?

c int program-entry-point void

33
推荐指数
2
解决办法
13万
查看次数

删除文件夹和所有文件/子目录

如何在C++中删除包含所有文件/子目录(递归删除)的文件夹?

c++ file-io delete-directory

24
推荐指数
3
解决办法
3万
查看次数

如何在(POSIX)C中删除目录及其内容?

我对非递归情况最感兴趣,但我猜测其他可能跟踪这个问题的人会更喜欢看到递归情况.

基本上,我们的目标是:

rm -rf <target>
Run Code Online (Sandbox Code Playgroud)

但是,系统调用将是一个不成熟的答案.

c directory posix

17
推荐指数
4
解决办法
4万
查看次数

Linux上C中的递归文件删除

我有一个C程序,在程序的某一点上有这个:

system("rm -rf foo");

其中foo是一个目录.我决定,而不是调用系统,最好在代码中执行递归删除.我假设一段代码很容易找到.傻我.无论如何,我最后写了这个:

#include <stdio.h>
#include <sys/stat.h>
#include <dirent.h>
#include <libgen.h>

int recursiveDelete(char* dirname) {

  DIR *dp;
  struct dirent *ep;

  char abs_filename[FILENAME_MAX];

  dp = opendir (dirname);
  if (dp != NULL)
    {
      while (ep = readdir (dp)) {
        struct stat stFileInfo;

        snprintf(abs_filename, FILENAME_MAX, "%s/%s", dirname, ep->d_name);

        if (lstat(abs_filename, &stFileInfo) < 0)
          perror ( abs_filename );

        if(S_ISDIR(stFileInfo.st_mode)) {
          if(strcmp(ep->d_name, ".") && 
             strcmp(ep->d_name, "..")) {
            printf("%s directory\n",abs_filename);
            recursiveDelete(abs_filename);
          }
        } else {
          printf("%s file\n",abs_filename);
                  remove(abs_filename);
        }
          }
      (void) closedir (dp);
        } …
Run Code Online (Sandbox Code Playgroud)

c unix

12
推荐指数
2
解决办法
2万
查看次数

取消链接目录时会发生什么?

假设c.txt在目录中bunlink c.txt很简单,系统只是删除{XXX, c.txt}目录中的条目b。但是如果b是 的子目录a,并且我想取消链接会发生什么b,过程是相同的还是更复杂?

linux unlink rmdir

1
推荐指数
1
解决办法
1万
查看次数

标签 统计

c ×3

c++ ×1

delete-directory ×1

directory ×1

file-io ×1

int ×1

linux ×1

posix ×1

program-entry-point ×1

rmdir ×1

unix ×1

unlink ×1

void ×1