我已經這塊Ç代碼:讀取二進制文件的全部內容
[...]
struct stat info;
char *filename = "just_a_binary_file";
stat(filename, &info);
printf("FILE SIZE: %d\n", info.st_size);
char *content = (char *)malloc(info.st_size * sizeof(char *));
FILE *fp = fopen(filename, "rb");
fread(content, info.st_size, 1, fp);
fclose(fp);
printf("STRING LENGTH: %d\n", strlen(content));
[...]
輸出爲:
FILE SIZE: 20481
STRING LENGTH: 6
的問題是,文件中包含一些零字節,當我把文件內容放入一個變量char *時,字符串在第一次出現'\ 0'(精確到chr(0))時被截斷。
問題是如何將完整的二進制內容轉換爲變量char *?
actualy簡單'info.st_size'足夠在這種情況下 –