здесь my.I не может понять, почему этот getline () возвращает 1 вместо того, чтобы не возвращать ни одного прочитанного символа.
#include<stdio.h>
#include<stdlib.h>
int main(int argc, char *argv[])
{
FILE *fp;
if (argc!=3)
{
printf("improper number of input\n");
exit(1);
}
size_t len=0;
ssize_t read;
char *line=NULL;
fp=fopen(argv[1],"r");
if (fp==NULL)
{
printf("file is empty\n");
exit(EXIT_FAILURE);
}
while (read=getline(&line, &len, fp)!=-1)
{
printf("retrieved line length %zu \n",read );
//printf("%s\n",line );
}
fclose(fp);
free(line);
}
А вот мой вывод.
retrieved line length 1
Я использовал getline (), как упомянуто здесь http://man7.org/linux/man-pages/man3/getline.3.html
мой файл содержит следующий текст:
Официальным и де-факто национальным языком Бангладеш является бенгальский современный стандартный язык (литературный бенгальский).[6] [7] [8] [9]Он служит языком общения нации, причем 98% жителей Бангладеш свободно говорят на бенгальском (включая диалекты) в качестве первого языка. [10] [11]В Индии бенгальский является официальным языком штатов Западная Бенгалия, Трипура и долина Барак в штате Ассам.На нем также говорят в разных частях долины Брахмапутры Ассама.Это также самый распространенный язык на Андаманских и Никобарских островах в Бенгальском заливе [12], на котором говорят значительные меньшинства в других штатах, включая Джаркханд, Бихар, Мизорам, Мегхалая и Одиша.При общем количестве говорящих на 250–300 миллионов человек во всем мире [13] бенгальский язык обычно считается седьмым по распространенности родным языком в мире по численности населения