Есть много возможных причин:
- Программа читает входные данные из файла
log
, пока вы пытаетесь перенаправить в него с усечением (см. Почему не работает "sort file1> file1"? )
- Вывод буферизуется, так что вы не видите данные в файле, пока буфер вывода не будет очищен. Вы можете вручную вызвать
fflush
или вывести std::flush
при использовании потока ввода-вывода C ++ и т. Д.
- Программа достаточно умна и отключает вывод, если выходной поток не является терминалом.
- Вы смотрите не на тот файл (то есть в другой каталог).
- Вы пытаетесь сбросить содержимое файла неправильно.
- Ваша программа выводит '\ 0' в качестве первого символа, поэтому вывод кажется пустым, хотя некоторые данные есть.
- Назовите свое имя.
Лучше всего запустить это приложение в отладчике (например, gdb
) или использовать strace
или ptrace
(или оба) и посмотреть, что делает программа. Я имею в виду, действительно, перенаправление вывода работает в течение последних 40 лет, поэтому проблема должна быть в другом месте.