Навеяно тредом про Exim. Решил я проверить, действительно ли всё так хорошо и поток байт из файла можно читать с помощью fgetc(), а буферы винта и ФС сами разрулят ситуацию.
Для проверки использовался следующий код:
#include <stdio.h>
#include <time.h>
int main() {
    const int n = 16384;
    char buf[n];
    time_t t1 = time(0);
    FILE* f = fopen("./1.avi","rb");
    while(!feof(f)) fgetc(f);//fread(buf,1,n,f);
    fclose(f);
    time_t t2 = time(0);
    printf("%i%,t2-t2);
    return 0;
Каждый раз брался новый файл, чтобы оно не кэшировалось слишком.
Использовалось две ОС: 1) Mandriva Linux 2011.0, ext3, размер блока 4096 2) MS Windows XP, NTFS, размер блока 4096
Таблицы экспериментов:
Mandriva, Ext3                              Windows, NTFS
метод | буфер | размер | время | мб/сек|    метод | буфер | размер | время | мб/сек|
---------------------------------------|    ---------------------------------------|
fgetc |     - |    264 |    12 |  22.0 |    fgetc |     - |    426 |    71 |   6.0 |
---------------------------------------|    ---------------------------------------|
fread |     1 |    441 |    39 |  11.3 |    fread |     1 |    426 |    71 |   6.0 |
      |     2 |    122 |     6 |  20.3 |          |     2 |    426 |    36 |  11.8 |
      |     4 |    183 |     6 |  30.5 |          |     4 |    497 |    29 |  17.1 |
      |     8 |    291 |     9 |  32.3 |          |     8 |    703 |    17 |  41.4 |
      |    16 |    273 |     8 |  34.1 |          |    16 |   1399 |    37 |  37.8 |
      |    32 |    834 |    18 |  46.3 |          |    32 |   1429 |    14 | 102.1 |
      |    64 |    740 |    17 |  43.5 |          |    64 |   1400 |    13 | 107.7 |
      |   128 |    889 |    20 |  44.5 |          |   128 |   1399 |    16 |  87.4 |
      |   256 |    622 |    14 |  44.4 |          |   256 |   1402 |    17 |  82.5 |
      |   512 |    734 |    13 |  56.5 |          |   512 |   1489 |    18 |  82.7 |
      |  1024 |    733 |    11 |  66.6 |          |  1024 |   4852 |    73 |  66.5 |
      |  2048 |    734 |    13 |  56.5 |          |  2048 |   4852 |    56 |  86.6 |
      |  4096 |    783 |    15 |  52.2 |          |  4096 |   4852 |    56 |  86.6 |
      |  8192 |    783 |    15 |  52.2 |          |  8192 |   4852 |    56 |  88.2 |
      | 16384 |    834 |    19 |  43.9 |          | 16384 |    834 |    56 |  86.6 |
---------------------------------------|    ---------------------------------------|
Выводы делайте сами.






