Так что я пытался написать что-то в stdout из моей p-> полезной нагрузки, которая должна быть указателем на данные. И block_size - 256.в C, fwrite() 'size_t size "и" size_t n items "confusion
Моя проблема в том, что мой stdout всегда будет точно таким же, если я переключу p-> block_size и sizeof (char). Может кто-нибудь сказать мне почему? Благодарю.
fwrite(p->payload, p->block_size,sizeof(char),stdout);
См. Также [«Как действительно работает fread?»] (Http://stackoverflow.com/q/8589425/827263) –
Обратите внимание, что с аргументами 'p-> block_size' и' sizeof (char) ', если 'p-> block_size' равно' 1', изменение порядка аргументов изменяет значение, возвращаемое 'fwrite()'. Он сообщает количество элементов заданного размера, которые были написаны, поэтому в одном случае вы получите 'p-> block_size', возвращенный при успехе (и 0 при ошибке), а в другом вы получите' 1', возвращенный на успех (и 0 при ошибке). –