по какой-то причине fgets
правильно считывает строки из файла, пока не достигнет определенной строки, где он просто получает часть строки. Я проверил файл с помощью Hex-редактора, и в середине этой строки не было нового символа строки.fgets не читает целую строку, не встречается новый символ строки
файла: (. Довольно большой fgets
останавливается на линии 269)
/mmc_data/add_rootfs
...
/mmc_data/add_rootfs/data/local/sbin/mcast
Вот строка 269 в шестнадцатеричном представлении:
2f 6d 6d 63 5f 64 61 74 61 2f 61 64 64 5f 72 6f 6f 74 66 73 2f 64 61 74 61 2f 6c 6f 63 61 6c 2f 73 62 69 6e 2f 6d 63 61 73 74 0a
Я просто комбинируя fgets
с printf
:
char cBuffer[1024]="";
while(fgets(cBuffer,1024,fpLog){
printf("%s\n",cBuffer);
}
...
Программа выводит все правильно до тех пор, пока она достигает линии 269 и это только печатает:
/mmc_data/a
instead of
/mmc_data/add_rootfs/data/local/sbin/mcast
1024 Bytes явно не была достигнута, а также символ новой строки. Так почему фэсты останавливаются на этом посту?
Мы уверены, что это неправильный вход, а не выход? Что говорит 'strlen (cBuffer)' say? – Medinoc
strlen возвращает 11. –
Цикл while выходит после того, как напечатал такие 11 символов? – alk