#c #linux
#c #linux
Вопрос:
когда я использую системный вызов read, буфер, который я предоставляю во втором аргументе, где должны храниться данные от чтения, перезаписывается правильно!?
спасибо, Никос
Комментарии:
1. Да, значения в буфере перезаписаны.
2. Какая ОС? Вы говорите о системном вызове или функции fread из stdio? Если я должен догадаться, о чем вы спрашиваете, то да, буфер перезаписан.
3. я говорил о системном вызове ядра Linux, спасибо за ответы 🙂
Ответ №1:
Да, в этом и заключается смысл read()
заполнения (= перезаписи) буфера содержимым, считанным из файла.
Комментарии:
1. я говорил о системном вызове ядра Linux, спасибо за ответы 🙂
Ответ №2:
Перезаписывается только столько байт, сколько значение, возвращенное из read()
вызова.
ovr = read(f, buf, 1000);
if (ovr < 0) /* error */;
/* `ovr` bytes of `buf` were overwritten */