Доброго времени суток.
Есть вопрос - как мне на С (под FreeBSD) выполнить запуск определенного приложения или команды ?
например: fetch,lynx,trafshow.
>Доброго времени суток.
>Есть вопрос - как мне на С (под FreeBSD) выполнить запуск определенного
>приложения или команды ?
>например: fetch,lynx,trafshow.man system(3), exec(3), etc
>Доброго времени суток.
>Есть вопрос - как мне на С (под FreeBSD) выполнить запуск определенного
>приложения или команды ?
>например: fetch,lynx,trafshow.fork(2), exec(3), popen(3)
Большое спасибо - за помощь.
Есть еще пару вопросов.
1- как преобразовать на Си число в строку?
2- где указывать глобальные переменные?Не сочтите за труд- жду ответа не теряя времени и читая мануал.
>Большое спасибо - за помощь.
>Есть еще пару вопросов.
>1- как преобразовать на Си число в строку?char buf[<SIZE>];
sprintf(buf, "%d", <NUMBER>);, где <SIZE> - соотвественно размер буфера
<NUMBER> - число, которое будет "преобразовано" в строку. Результат в buf
>2- где указывать глобальные переменные?int global_variable;
int
main() { return 0; }
>>Доброго времени суток.
>>Есть вопрос - как мне на С (под FreeBSD) выполнить запуск определенного
>>приложения или команды ?
>>например: fetch,lynx,trafshow.
>
>fork(2), exec(3), popen(3)Мне тоже нужна ваша помощь, пожалуйста ответьте...
Я программирую в Suse Linux 7.3, у меня возникла проблемка, но man пока не установлен и вообще нет документации...При использовании fork в таблице состояния родительского процесса дочерний процесс показан как зомби, хотя дочерний запускается и отрабатывает нормально. Анализируя ситуацию, заметила, что родительский процесс не ждет завершения дочернего. В интернете прочла, что существуют опции линукса __WCLONE, __WALL, __WNOTHEREAD, которые определяют - ожидать или нет.
Вопрос следующий: как проверить значение этих опций и переустановить при необходимости?
>>>Доброго времени суток.
>>>Есть вопрос - как мне на С (под FreeBSD) выполнить запуск определенного
>>>приложения или команды ?
>>>например: fetch,lynx,trafshow.
>>
>>fork(2), exec(3), popen(3)
>
>Мне тоже нужна ваша помощь, пожалуйста ответьте...
>Я программирую в Suse Linux 7.3, у меня возникла проблемка, но man
>пока не установлен и вообще нет документации...
>
>При использовании fork в таблице состояния родительского процесса дочерний процесс показан как
>зомби, хотя дочерний запускается и отрабатывает нормально. Анализируя ситуацию, заметила, что
>родительский процесс не ждет завершения дочернего. В интернете прочла, что существуют
>опции линукса __WCLONE, __WALL, __WNOTHEREAD, которые определяют - ожидать или нет.
>
>Вопрос следующий: как проверить значение этих опций и переустановить при необходимости?man signal -> SIGCHLD
man wait/waitpidвсе остальное от лукавого
// wbr
>>>>Доброго времени суток.
>>>>Есть вопрос - как мне на С (под FreeBSD) выполнить запуск определенного
>>>>приложения или команды ?
>>>>например: fetch,lynx,trafshow.
>>>
>>>fork(2), exec(3), popen(3)
>>
>>Мне тоже нужна ваша помощь, пожалуйста ответьте...
>>Я программирую в Suse Linux 7.3, у меня возникла проблемка, но man
>>пока не установлен и вообще нет документации...
>>
>>При использовании fork в таблице состояния родительского процесса дочерний процесс показан как
>>зомби, хотя дочерний запускается и отрабатывает нормально. Анализируя ситуацию, заметила, что
>>родительский процесс не ждет завершения дочернего. В интернете прочла, что существуют
>>опции линукса __WCLONE, __WALL, __WNOTHEREAD, которые определяют - ожидать или нет.
>>
>>Вопрос следующий: как проверить значение этих опций и переустановить при необходимости?
>
>man signal -> SIGCHLD
>man wait/waitpid
>
>все остальное от лукавого
>
>// wbrСпасибо!
Справилась с образующимися зомби, определив
signal(SIGCHLD, SIG_IGN);А как это же из shell'а сделать?
>
>А как это же из shell'а сделать?
shell обычно сам обрабатывает завершение своих процессов.
чтобы повесить на завершение процессов опр. действие см. man trap
или help trap
>>>Доброго времени суток.
>>>Есть вопрос - как мне на С (под FreeBSD) выполнить запуск определенного
>>>приложения или команды ?
>>>например: fetch,lynx,trafshow.
>>
>>fork(2), exec(3), popen(3)
>
>Мне тоже нужна ваша помощь, пожалуйста ответьте...
>Я программирую в Suse Linux 7.3, у меня возникла проблемка, но man
>пока не установлен и вообще нет документации...
>
>При использовании fork в таблице состояния родительского процесса дочерний процесс показан как
>зомби, хотя дочерний запускается и отрабатывает нормально. Анализируя ситуацию, заметила, что
>родительский процесс не ждет завершения дочернего. В интернете прочла, что существуют
>опции линукса __WCLONE, __WALL, __WNOTHEREAD, которые определяют - ожидать или нет.
>
>Вопрос следующий: как проверить значение этих опций и переустановить при необходимости?Если ещё не разобралась - надо использовать waitpid для ожидания процессса.
>Если ещё не разобралась - надо использовать waitpid для ожидания процессса.Я писала 25 августа: "родительский процесс не ждёт завершения дочернего", т. е. я уже использовала wait.
После переопределения действия по сигналу SIGCHLD, с wait стало нормально, но почему-то родитель получает статус ненормального завершения дочернего процесса, хотя тот завершается - ok.
Ох, уж этот LINUX... С AIX'ом такой проблемы не было...