3.14 Опубликовано 12 сентября, 2006 Жалоба Поделиться Опубликовано 12 сентября, 2006 Собственно вопрос больше относится к смене стандартного вывода при запуске утилиты. Хочу из своей программы зхапустить "ifconfig > /var/log/ifconfig.log". Пробую, execl("/bin/ifconfig",">","/var/log/ifconfig.log"); получаю ошибку в аргументах (пробовал всяко, и не только с execl, правильной работы не добился) Сейчас, предварительно создаю временный скрипт (вот изврат ) в котором и делается ifconfig с нужным выводом апотом из своей программы его запускаю. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
AccessD Опубликовано 13 сентября, 2006 Жалоба Поделиться Опубликовано 13 сентября, 2006 внимательно читайте документацию - и всё у вас получится Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
3.14 Опубликовано 13 сентября, 2006 Автор Жалоба Поделиться Опубликовано 13 сентября, 2006 Может все-таки ткнете носом, не вижу я этого в доке. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
AccessD Опубликовано 14 сентября, 2006 Жалоба Поделиться Опубликовано 14 сентября, 2006 используйте popen() для получения вывода ifconfig в родительском процессе, а дальше дело техники.. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Ineu Опубликовано 14 сентября, 2006 Жалоба Поделиться Опубликовано 14 сентября, 2006 3.14 писал(а) Tue, 12 September 2006 23:38 Пробую, execl("/bin/ifconfig",">","/var/log/ifconfig.log"); получаю ошибку в аргументах 1. man execl ... The const char *arg and subsequent ellipses in the execl(), execlp(), and execle() functions can be thought of as arg0, arg1, ..., argn. Together they describe a list of one or more pointers to null-terminated strings that represent the argument list available to the executed program. The first argument, by convention, should point to the filename associated with the file being executed. Обратите внимание на выделенный курсивом текст. 2. Вы путаете средства оболочки и средства ядра. Ядро НЕ осуществляет перенаправление вывода, это делает шелл. Если хотите пользоваться системными функциями, пустите вывод через пайп, как советует AccessD, либо переопределите stdout - вновь запушенный процесс должен наследовать родительские дескрипторы. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.