簡體   English   中英

是否有可能獲得read()函數以從文件中檢索六字節值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM