Четене на съдържанието на файл
Библиотеката unistd.h съдържа методи за работа с файлове:
Всяко извикване чете len на брой байтове в buf от текущата позиция на файла, посочен в файловия дескриптор fd.
При успех се връща броят байтове записание в buf.
При грешка в резултат се връща -1, а информация за грешката се записва във errno.
Всъщност метода за четене може да доведе до много възможности:
Връща стойност, равна на len и всички прочетени байтове са запазени в buf. Резултатите са както е предвидено.
Връща стойност по-малка от len, но по-голяма от нула. Четените байтове се съхраняват в buf. Това може да се случи, защото сигналът прекъсва четенето в средата, в средата на четенето е възникнала грешка, повече от нула, но е налице по-малко от стойността на байтовете с леки байтове или EOF е достигнато, преди да бъдат прочетени байтове. Преиздаването на прочетеното (с съответно актуализираните стойности buf и len) ще прочете останалите байтове в останалата част от буфера или ще посочи причината за проблема.
Връща стойност 0. Това показва EOF. Няма какво да чете.
Извикването на метода блокира, тъй като няма налични данни. Това няма да се случи в режим на блокиране.
Връща стойност -1 и грешката е зададена на EINTR. Това показва, че е получен сигнал преди четенето на байтове.
Връща стойност -1, а грешката е зададена на EAGAIN. Това показва, че четенето би блокирало, защото понастоящем няма налични данни. Това се случва само в режим на блокиране.
Връща стойност -1, а грешката е зададена на стойност, различна от EINTR или EAGAIN. Това показва по-сериозна грешка.
Last updated