2022/4/18

memo : fread return value

fread 的 return value 是讀了多少進來。
但是常常會 "一直return 0"。

每次都要再 check 一下 function 宣告:
    #include <stdio.h>
    size_t fread(void *buffer, size_t size, size_t count, FILE *stream);
那個中間的兩個:size, count 如果相反的話,就會一直 return 0 ,即使有正確讀到資料也一樣。
所以一般都是...這樣:
    char buf[8];
    size_t ret = fread(buf, sizeof(*buf), sizeof(buf)/sizeof(*buf), stdin);
    printf("read %zu bytes\n", ret*sizeof(*buf));

沒有留言:

張貼留言