Шрифт:
– 1 : 1;
В заключение, функция
44
Эта функция завершает выполнение программы — Примеч. науч. ред.
3.2.1.9. Только GLIBC: чтение целых строк:
Теперь, когда вы увидели, как читать строки произвольной длины, вы можете сделать вздох облегчения, что вам не нужно самим писать такую функцию. GLIBC предоставляет вам для этого две функции:
Определение константы
Обе функции управляют для вас динамической памятью, гарантируя, что буфер, содержащий входную строку, достаточно большой для размещения всей строки. Их отличие друг от друга в том, что
Указатель на
Указатель на размер буфера. Если вы выделяете свой собственный буфер,
Место, откуда следует получать входные символы.
По достижении конца файла или при ошибке функция возвращает -1. Строки содержат завершающий символ конца строки или разделитель (если он есть), а также завершающий нулевой байт. Использование
Вот эта функция в действии, показывающая размер буфера. Третья входная и выходная строки намеренно длинные, чтобы заставить
3.2.2. Копирование строк:
Одной чрезвычайно типичной операцией является выделение памяти для копирования строки. Это настолько типично, что многие программисты предусматривают для нее простую функцию вместо использования внутритекстового кодирования, и часто эта функция называется