Does anyone know what the problem might be or what I am doing wrong?
Я не думаю, что в ваших двух решениях есть что-то неправильное. Просто невозможно, чтобы они могли запросить поведение, которое вы описываете... без преднамеренного разветвления второго процесса (, и вы не вызываете
fork()
), не убиваете процессtime
, не взламываете ядро и т. д.Возможно, ваш компьютер сломался.
Ранее у меня было странное поведение, вызванное повреждением скрытого диска. Я мог бы попробовать запустить
debsums
илиrpm --verify -a
для проверки.В равной степени это может быть ошибка в цепочке программного обеспечения, которое отображает вывод.
Например, gnome -терминал 3.22 имеет сбой при подаче некоторой последовательности двоичных файлов . В нескольких версиях ядра Linux была эта серьезная ошибка, из-за которой отправка более 4 КБ через эмулятор терминала ("псевдо -tty" )программе с поддержкой чтения -строки, такой как оболочка, могла потерять несколько строк . Сбрасывать 35 МБ текста за раз относительно необычно, в вашей ОС может быть какая-то подобная ошибка.
Если вы можете воспроизвести проблему с входным файлом размером всего 100 КБ, вот вам другой компьютер , который почти наверняка не поврежден так же, как главный компьютер он запущен. Вывод на консоль довольно медленный, свободного места тоже всего несколько мегабайт. Результат запуска вашей программы под
time
по какой-то причине не будет соответствовать реальным секундам, хотя для этого вопроса это не имеет значения. Текстовое поле буфера обмена не принимает ввод с клавиатуры для меня (Firefox 53 ),поэтому я использовал меню правого клика -, чтобы скопировать данные через/dev/clipboard
в соответствии с часто задаваемыми вопросами.