나는 추출하려는 정보가있는 구조체를 반환하는 stat() - 호출을 만들고 있습니다. 지금까지는 액세스 시간, 파일 수정 및 마지막 변경 시간을 가져올 때까지 필자가 원하는 것을 얻는 데 성공했습니다.세그먼트 화 오류 (ctime을 사용)
나는 그것을 얻기 위해 ctime을 사용하고, printf를 사용하여 그것을 출력하고 싶다.
printf("File: %s",argv[1]);
printf("\nSize: %d",result.st_size);
printf(" Blocks: %d",result.st_blocks);
printf(" IO Block: %d",result.st_blksize);
printf("\nDevice: 0x%x",result.st_dev);
printf(" Inode: %d",result.st_ino);
printf(" Links: %d",result.st_nlink);
// printf("\nAccess: %s",ctime(result.st_atime));
이 코드는 잘 작동하고 다음과 같은 출력을 제공합니다
File: /etc/passwd
Size: 2250043 Blocks: 4416 IO Block: 4096
Segmentation fault
: 내가 액세스 시간을 얻으려면 마지막 행의 주석을 해제하면
File: /etc/passwd
Size: 2250043 Blocks: 4416 IO Block: 4096
Device: 0x6804 Inode: 9738432 Links: 1
, 나는이 출력을 얻을를
어떻게 해결할 수 있습니까? 또한, 내가 어떻게 세그먼트 화 오류가 발생하는지 전에 장치, 노드 및 링크가 인쇄됩니까? 인쇄해서 세그먼테이션 오류를 생성하면 안됩니까?
저는 C의 경험이 거의 없습니다. 저는 이전 과정에서 어셈블리를 공부했지만 매우 간단합니다. time.h의 API를 읽으려고했지만 실제로 해결책을 찾지 못했습니다.
도움이나 조언을 제공해 주셔서 감사합니다.
감사 Z
의 printf를 잊지 마세요. 개행 문자가 표시 될 때까지 아무 것도 인쇄되지 않습니다 (기본값). 줄 바꿈이 실패한 마지막 printf이므로 장치 줄이 화면에 나타나지 않습니다. –