C:没有这样的文件或目录



当我硬编码open(chemin, O_RDONLY)中的chemin到文件名时,程序工作,但当我离开open(chemin, O_RDONLY)时,我得到No such file or directory

为什么不使用type_fichier中的chemin ?

当我在type_fichier中使用printf("%s", chemin)时,我得到'

int type_fichier(char * chemin) {
  int fp;
  if ((fp = open(chemin, O_RDONLY)) == -1) { perror(""); exit(0); }
  struct stat fileStat;
  if(fstat(fp, &fileStat) < 0)
    return 1;
  switch(fileStat.st_mode & S_IFMT) {
    case S_IFBLK:  printf("block devicen");            break;
    case S_IFCHR:  printf("character devicen");        break;
    case S_IFDIR:  printf("directoryn");               break;
    case S_IFIFO:  printf("FIFO/pipen");               break;
    case S_IFLNK:  printf("symlinkn");                 break;
    case S_IFREG:  printf("regular filen");            break;
    case S_IFSOCK: printf("socketn");                  break;
    default:       printf("unknown?n");                break;
  }
}
int main(int argc, char *argv[]) {
  char fn = "file";
  type_fichier(&fn);
}

你的错误在这里,你只分配了1个字符fn:

char fn = "file";
type_fichier(&fn);

您可能需要:

const char *fn = "file";
type_fichier(fn);

您正在使用char变量来存储字符串字面值,而不是字符数组或等效的字符数组。

 int main(int argc, char *argv[]) {
  char fn[] = "file";
  type_fichier(fn);
}

就这样....

相关内容

  • 没有找到相关文章

最新更新