8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

在我的程序中尝试使用 opendir() 会导致分段错误。我在 vscode 上以及学校的 Linux 服务器上

mohamed reda 1月前

23 0

#包括#包括#包括#包括#包括#define MAX 100int copy(char fileName[],char dirName[]){...

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <dirent.h>
#include <sys/types.h>
#define MAX 100

int copy(char fileName[], char dirName[])
{
    printf("0");
    
    //open directory and test if it opens successfully
    DIR *OGdir = opendir("~/");
    struct dirent *OGdp = readdir(OGdir);

    if(OGdir == NULL)
    {
        printf("\nUnable To Open Directory\n");
        return(-1);
    }

    printf("1\n");
    //more code will go here i have more to do but this wont even work
    return(0);
}

我正在打开当前目录,我需要能够打开其中的文件来将其复制,但我甚至无法打开该目录。

当我尝试只打开文件而不尝试目录时,也会发生这种情况。我认为这与 ssh 服务器或我需要做的其他事情有关,但我已经尝试了很多不同的方法,这几乎就是到处告诉我要这样做的方式,我是不是忘了什么?因为我在学校的 linux ssh 服务器上,所以我需要做一些特别的事情吗?这是我第一次使用 ssh 服务器,所以如果我应该已经知道这一点,我深表歉意。

帖子版权声明 1、本帖标题:在我的程序中尝试使用 opendir() 会导致分段错误。我在 vscode 上以及学校的 Linux 服务器上
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由mohamed reda在本站《c》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 在检查是否 OGdir 为 之前, readdir 您要传递 OGdir NULL 。在使用指针之前,您应该先检查:

    if(OGdir == NULL)
    {
        printf("\nUnable To Open Directory\n");
        // return(-1);
        return EXIT_FAILURE; // This a more portable way to indicate failure than the constant -1
    }
    
    struct dirent *OGdp = readdir(OGdir); // Move this line after the if
    

    其次,从代码中打开文件/目录与使用符号不兼容 "~/" 。如果您想使用当前工作目录,请使用 opendir("."); 。或者您可以 手动查询主目录 .

    但是如果你 echo ~ 在终端中输入,你的主目录就会被打印出来,这表明是 ~ 在命令行级别而不是在程序级别扩展到你的主目录。

    此外,通常你不会只调用 readdir() 一次。如果你在某个时候想要循环遍历目录中的所有文件,我建议使用:

    struct dirent *OGdp;
    while((OGdp = readdir(OGDir)) != NULL)
    {
        // Your code
    }
    

    而不是:

    struct dirent *OGdp = readdir(OGDir);
    while(OGdp != NULL)
    {
        // Your code
        OGdp = readdir(OGDir);
    }
    
返回
作者最近主题: