LINUX.ORG.RU

read


0

0

Почему-то в мане не сказано про ситуацию, когда read возвращает байтов больше чем запрошено. Сказано только про меньшее количество. Где можно осведомиться? И вообще, насколько это нормально?

★★★

Re: read

этого не может быть, потому что этого не может быть никогда

anonymous ()

Re: read

при случае если в файле больше нет. например ты пытаешся прочитать 1000 байт с файла размером 100 байт.

> И вообще, насколько это нормально?

систематически используется на нерегулярных файлах типа портов, сокетов .....

cvv ★★★★★ ()
Ответ на: Re: read от anonymous

Re: read

> этого не может быть, потому что этого не может быть никогда

да ну? а если read вернул -1, а смотришь ты это возвращенное значение как unsigned - как раз и получится подобная ситуация

ananas ★★★★★ ()
Ответ на: Re: read от ananas

Re: read

мда... отрицательные значения это вполне нормальное явление, их

используют для возвращения кода ошибки.

ssize_t read(...)

aton ()
Ответ на: Re: read от cvv

Re: read

>при случае если в файле больше нет. например ты пытаешся прочитать 1000 байт с файла размером 100 байт.

>> И вообще, насколько это нормально?

>систематически используется на нерегулярных файлах типа портов, сокетов .....

невнимательно прочитал вопрос.

действительно ты интерпретируеш -1 как целое беззнаковое - иначе никак.

cvv ★★★★★ ()

Re: read

int main(void) {
char c;
int r;
while(1) {
r = read(0,&c,1);
}
}

Вот при определенных условиях r равняется трем. И в символ ничего не заносится
Сразу скажу, что это получается в результате внедрения кода (любого) в этот процесс, например
nop
nop
ret
(\x90\x90\xc3)
Код и трассировщик верные, пашут на остальных процессах, где нет read.
Вот и интересно, с какого бодуна эта тройка берется...

Chumka ★★★ ()
Ответ на: Re: read от Chumka

Re: read

сам себе злобный буратино!

cvv ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.