Intereting Posts
Как исправить проблему с программным обеспечением? Gnome-классический экран блокировки без подсказки пароля Простое приложение для голосового чата для Yahoo в Ubuntu 11.10? Я пытаюсь начать работу с контейнерами LXC, и я получаю проблему с разрешениями при запуске незащищенного контейнера. Как я могу это исправить? Как я могу остановить juju и удалить его с моей локальной машины? Ошибка соединения с Evernote на 12.04? Как я могу увидеть сеансы UDS? Загрузка программного обеспечения не остановится / отменит Как я могу предоставить интернет-доступ к локальной сети через сервер DHCP / Gateway? Nautilus: «Отправить через Bluetooth» в контекстном меню Как отметить «разрешить выполнение файла как программы» на внешнем диске Почему команда не работает для добавления реальных чисел? Подключить неизвестную файловую систему exfat Что такое тумблер? Можно ли восстановить файл, перезаписанный Ubuntu One?

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

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

./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 лет, поэтому проблема должна быть где-то в другом месте.