Intereting Posts
Двойная загрузка Windows 7 и Ubuntu 12.10 на ноутбуке UEFI Как переустановить загрузчик GRUB на MBR после установки Kubuntu? Как установить Chrome или Chromium 32 бит на Ubuntu 64 бит Справка по сценарию bash для Docky Мой корневой раздел продолжает заполняться до 100% емкости, но я не могу понять, почему! Мосты: потеря связи WLAN с 4addr на опции – Почему? Внешний монитор на Thinkpad P50 с Ubuntu 16.04 и сенсорным экраном Как удалить значки Microsoft Office? Ввод пользователя с тайм-аутом Просто обновляйте до 14.04 и калькулятор запустите кнопку режима сочетание клавиш gnome-terminal (ctrl-tab) и (ctrl-shift-tab) в 12.04? Как ускорить поиск локально установленных приложений в Unity Dash Ubuntu 13.10? Как я могу играть одновременно два разных звука, используя наушники для одного и внутренних динамиков для другого? Как избежать символов `$` и `#` в bash? Проблема Java / Eclipse: невозможно сделать защищенный void java.net.URLClassLoader.addURL (java.net.URL) доступным: модуль java.base не выполняет

Перенаправление не работает

Я хочу вывести вывод моей программы в файл. Я добавил следующее:

./prog > log 2>&1 

Но в файле «log» нет ничего. Я использую Ubuntu 11.10, а shell по умолчанию – bash.

Кто-нибудь знает причину этого И как я могу отладить это?

Существует много возможных причин:

  • Программа считывает ввод из файла log когда вы пытаетесь перенаправить его с усечением (см. Раздел «Почему не выполняется сортировка файла1? File1»? )
  • Выход буферизуется так, что вы не видите данные в файле до тех пор, пока выходной буфер не будет сброшен. Вы можете вручную вызвать fflush или вывести std::flush если используете stream ввода-вывода C ++ и т. Д.
  • Программа достаточно умна и отключает вывод, если выходной stream не является терминалом.
  • Вы смотрите на неправильный файл (то есть в другой каталог).
  • Вы пытаетесь сбросить содержимое файла неправильно.
  • Ваша программа выводит «\ 0» в качестве первого символа, поэтому выход кажется пустым, хотя есть некоторые данные.
  • Назовите свое.

Лучше всего запустить это приложение под отладчиком (например, gdb ) или использовать strace или ptrace (или оба) и посмотреть, что делает программа. Я имею в виду, действительно, redirect вывода работает в течение последних, как 40 лет, поэтому проблема должна быть где-то в другом месте.