他們都可以從流中獲取一行。爲什麼`fgets()`需要一個* str,但是`getline()`需要一個** str參數?
定義如下:
ssize_t
getline(char ** restrict linep, size_t * restrict linecapp, FILE * restrict stream);
而且
char *
fgets(char * restrict str, int size, FILE * restrict stream);
爲什麼getline
需要a pointer to a pointer to char
,而不是使用a pointer to char
喜歡什麼fgets
怎麼辦?
而且確實低於等效?
(1)
char *str = NULL
read = getline (&str, &len, fp);
(2)
char *str = NULL
read = fgets (str, &len, fp);