我需要我的程序显示有关文件的信息。所以这是我的代码

#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]){
    struct stat fileStat;
    if (argc != 2) {
        fprintf(stderr, "Usage: %s <pathname>\n", argv[0]);
        exit(0);
    }

   if (stat(argv[1], &fileStat) == -1) {
        exit(1);
   }
    printf("ID ", fileStat.st_uid);

    printf("Dydis: \t\t%d bytes\n" + fileStat.st_size);
}


但是我得到这个错误

Segmentation Fault (core dumped)


任何想法有什么问题吗?

最佳答案

您需要更改代码

printf("Dydis: \t\t%d bytes\n" + fileStat.st_size);




printf("Dydis: \t\t%d bytes\n", fileStat.st_size);
                              ^
                              |
                          notice this change


参考:根据C11标准的第§7.21.6.3章,语法为:


  int printf(const char * restrict format, ...);

关于c - 使用统计信息的段错误(核心已转储),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29675958/

10-12 21:48