Я пытаюсь понять, почему эта программа возвращает разные ошибки, когда я изменяю размер буфера:
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
int main()
{
int file = open("./test",O_RDWR);
//char buff[204796] = "" ; -> File Descriptor error (no seg fault)
//char buff[100000]=""; -> Seg Fault
char buff[208896]=""; -> Bad Adress (no seg fault)
int i = 0;
while(read(file,buff+i,2048) > 0)
{
i += 2048;
};
fprintf(stderr, "%s\n", strerror(errno));
}
Тест представляет собой файл с 500000 А :)
Когда возникают ошибки Bad address или File descriptor, я не знаю, как использовать этот код.