파일에 4 개의 부호없는 정수 구조체를 쓰고 다시 읽으려고하는데 아무 것도 읽을 수 없습니다.파일에서 구조체 읽기
// create and write values in superblock
..
Superblock s; // the struct
if(write(file_desc , &superblock , sizeof(Superblock)) == -1) {
perror("writing superblock");
exit(1);
}
close(file_desc);
file_desc = open(path_file, O_WRONLY | O_CREAT, 0600);
while ((read(file_desc , &s , sizeof(Superblock))) > 0) {
printf("%u %u %u %u\n", s.block_size, s.filename_size, s.max_file_size,
s.max_dir_file_no);
}
그것도 루프를 입력하지 않습니다
여기 내 코드입니다. 내가 뭘 놓치고 있니?
디스크에 구조를 직접 읽고 쓰는 것은 좋지 않은 생각입니다. 그들은 패딩을 포함 할 수 있는데, 이것은 매우 컴파일러에 의존적입니다. – unwind
네, 구조의 각 필드를 직렬화하여 외부 표현의 일부인 비트를 제어 할 수있게하는 것이 좋습니다. 전체 구조체를 직접 작성하면 해당 컨트롤이 없습니다. – unwind
나는 그것을 가지고있다. – gsamaras