[英]Is it possible to get the read() function to retrieve hexa bytes values from a file?
我正在嘗試理解一些代碼,並且想知道它是否真的可以工作。
我不知道文件“ test”的內容,但我想它必須與代碼中可以看到的“ case”匹配。
我已經通過創建一個內容為“ \\ x08”或“ 0x08”(或\\ x04和0x04)的文件“ test”來嘗試了此代碼,但是它並沒有進入前兩種情況(相反,讀取函數采用“ \\”,然后“ x”然后是“ 0”等,然后將其放入變量i
)
int main(){
int i;
fd = open("test",O_RDONLY);
read(fd,&i,1);
switch(i)
{
case 0x08:
printf("0x08");
break;
case 0x04:
printf("0x04");
break;
case 0x61:
printf("0x61");
break;
default:
printf("default\n");
}
close(fd);
return 0;
}
對於情況3(0x61),當我將char a
放入文件中時有效(因為a
的hexa值為0x61
),但是對於前兩種情況我可以在文件中放入什么?
謝謝
您可以編寫自己的測試文件生成器:
...
int i; /* or char i; */
d = open("test", O_WRONLY);
i = 8;
write(fd, &i, sizeof(int)); /* or 1 */
i = 4;
write(fd, &i, sizeof(int)); /* or 1 */
i = 0x61;
write(fd, &i, sizeof(int)); /* or 1 */
close(d);
....
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.