когда я использую системный вызов read, буфер, который я предоставляю во втором аргументе, где данные чтения должны быть сохранены, перезаписывается правильно!?
спасибо, Никос
Перезаписываются только те байты, которые соответствуют значению, возвращенному при вызове read().
read()
ovr = read(f, buf, 1000); if (ovr < 0) /* error */; /* `ovr` bytes of `buf` were overwritten */
Да, это точка read() для заполнения (= перезаписи) буфера содержимым, считанным из файла.