getline 3 man手冊翻譯

2021-10-04 22:53:32 字數 1897 閱讀 4857

getline(3)

getline, getdelim - delimited string input

#include

ssize_t getline(char **lineptr, size_t *n, file *stream);

size_t getdelim(char **lineptr, size_t *n, int delim, file *stream)

feature test macro requirements for glibc (see feature_test_macros(7))

getline(), getdelim():

since glibc 2.10:

_posix_c_source >= 200809l

before glibc 2.10:

_gnu_source

getline()從stream裡面讀取完整的一行,將包含文字的緩衝的位址儲存在*lineptr中。這個buffer是以『\0』(null-terminator or null character)結尾的,如果有newline的話就包含newline。

如果在呼叫之前,*lineptr設定為null,*n設定為0,那麼getline()會分配乙個用於儲存行的buffer。即使getline()失敗了,使用者也需要釋放這個快取。

作為另一種選擇,在呼叫getline()之前,*lineptr可以包含乙個指向malloc分配的*n位元組快取的buffer。如果這個buffer大小不夠,那麼getline會用realloc(3)來重新調整buffer的大小,並且按需更新*lineptr和*n的大小。

無論哪一種情況,在一種成功的呼叫之下,*lineptr和*n會跟新到反應buffer的位址和大小。

getdelim()和getline()類似,但是它可以通過delimiter引數指定line分界符,而不是像getline()只能使用newline作為line分界符。和getline一樣,如果在讀到eof之前沒有讀到line分界符,那麼buffer裡面就不儲存這個line分解符。

如果成功,getline()和getdelim()返回讀取的字元長度(包含最後的行分界符,但是不包括null-terminator)。

兩個函式都return -1來表示讀行失敗。如果出現錯誤,errno就設定來反映原因。

einval 輸入引數不對(n或者lineptr是null,或者stream無效)。

enomem 分配或者重新分配buffer失敗。

要看在這個部分使用的術語的解釋,請看attribute(7)。

inte***ce

attribute

value

getline(), getdelim()

thread safety

mt-safe

getline()和getdelim()都是gnu拓展。他們在posix.1-2008中被標準化了。

#define _gnu_source

#include #include int

main(int argc, char *ar**)

stream = fopen(ar**[1], "r");

if (stream == null)

while((nread = getline(&line, &len, stream)) != -1)

free(line);

fclose(stream);

exit(exit_success);

}

read(2), fgets(3), fopen(3), fread(3), scanf(3)

這一頁是4.15 linux man-pages專案的一部分。專案的描述、報bug相關資訊以及本頁的最新版本,可以在找到。

gnu 2017-09-15 getline(3)

linux中man 2與man 3區別

在查詢stat系統呼叫的時候發現這個問題,記錄在此,發現查詢到的資訊不是系統呼叫資訊,使用man 2即可 1 standard commands 標準命令 2 system calls 系統呼叫 3 library functions 庫函式 4 special devices 裝置說明 5 fil...

RHEL7 UNI3 MAN使用方法

unit 3 1.man man manual man是手冊縮寫 man man 檢視man命令的幫助 man passwd 檢視passwd命令的幫助 man命令對於各運維人員來說是必須要學習掌握的,任何乙個運維人員不可能將所有的命令全部牢記在心,那麼使用man方法後類似於乙個軟體的readme,...

linux基本命令及操作3(man命令)

1.man man manual man是手冊縮寫 man man 檢視man命令的幫助 man passwd 檢視passwd命令的幫助 man的級別 1 系統命令 2 系統介面 3 函式庫 4 特殊檔案,比如裝置檔案 5 檔案 6 遊戲 7 系統的軟體包 8 系統管理命令 9 核心 man 5 ...