Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

spawn*

376
20 апреля 2005 года
Absolut
220 / / 22.11.2002
Хотел использовать функцию spawnl, но не обнаружил соотвтетствующего *.h (насколько я знаю это process.h). Комляторы gcc/g++ установлены, библиотек разных тоже куча. В чём может быть дело ? Linux Mandrake 10
7.1K
20 апреля 2005 года
miXme
44 / / 10.04.2005
Цитата:
Originally posted by Absolut
Хотел использовать функцию spawnl, но не обнаружил соотвтетствующего *.h (насколько я знаю это process.h). Комляторы gcc/g++ установлены, библиотек разных тоже куча. В чём может быть дело ? Linux Mandrake 10



Скорее всего при установке системы не установил исходные тексты. они должны располагаться в /usr/src/...

Я сам буду на выходных Linux Mandrake 10, так что смогу добавить более конкретно.

376
21 апреля 2005 года
Absolut
220 / / 22.11.2002
Цитата:
Originally posted by miXme
Скорее всего при установке системы не установил исходные тексты. они должны располагаться в /usr/src/...

Я сам буду на выходных Linux Mandrake 10, так что смогу добавить более конкретно.



Вообще-то все *.h лежат в /usr/include/.. Но я, честно говоря, сомневаюсь, в том, что при установке не поставил какой-то "галочки", так чтобы всё было, а spawn* не было. Кстати, также не находит функции tell().

243
24 апреля 2005 года
pacific_7
1.9K / / 06.09.2004
Ребята, а с чего вы взяли, что такие функции обязаны быть в линухе? Что spawnl, что tell отсутствуют в стандарте Cи и зависят от реализации конкретной ОС.
tell - линукс понимает только как команду языка Tcl/TK, или как функцию perl'a.
spawnl - тоже в линухе отсутствует, т.к. не соответствует стандарту POSIX 1003.1 Об этом смотрите здесь: http://www.qnx.com/developers/docs/momentics621_docs/neutrino/lib_ref/s/spawnl.html
В замен spawnl подойдет fork() - читайте документацию.
В место tell() - ftell(), если я правильно понял вашу идею.
376
25 апреля 2005 года
Absolut
220 / / 22.11.2002
Цитата:
Originally posted by pacific_7
Ребята, а с чего вы взяли, что такие функции обязаны быть в линухе? Что spawnl, что tell отсутствуют в стандарте Cи и зависят от реализации конкретной ОС.
tell - линукс понимает только как команду языка Tcl/TK, или как функцию perl'a.
spawnl - тоже в линухе отсутствует, т.к. не соответствует стандарту POSIX 1003.1 Об этом смотрите здесь: http://www.qnx.com/developers/docs/momentics621_docs/neutrino/lib_ref/s/spawnl.html
В замен spawnl подойдет fork() - читайте документацию.
В место tell() - ftell(), если я правильно понял вашу идею.



Этого и следовало ожидать, POSIX, вечно он портит жизнь ;-) Кстати, по ссылочке, что ты дал, написано, что spawnp() и spawn() удовлетворяют позиксам. Однако, их тоже в линухе нет. Может быть, конечно же, этот позикс не 1003.1, о котором ты упомянул, но всё же позикс. Форки, екзеки - с ними всё понятно. Хотелось просто меньше возни испытать при портировании из qnx в Linux.
p.s.
Вместо tell использую lseek(handle, 0, SEEK_CUR);

12K
22 июля 2005 года
nnivanov
3 / / 22.07.2005
Зачем же так человека парить!!!

В Linux вместо spawn используется функция fork() и семейство функций exec() (execl, execv, execle, execlp, execve, execvp). Все дело в том, что в Unix-системах не такой примитивный механизм порождения процессов, как в других системах (не будем показывать пальцем:-))
243
22 июля 2005 года
pacific_7
1.9K / / 06.09.2004
Цитата:
Originally posted by nnivanov
В Linux вместо spawn используется функция fork() и семейство функций exec() (execl, execv, execle, execlp, execve, execvp).


А мы без вашего руководства этого конечно не знали. Бааальшое спасибо ;)
Вы предыдущие посты вообще читали? Хотя бы последний пост Absolut'а: "Форки, екзеки - с ними всё понятно".

Цитата:
Originally posted by nnivanov

Все дело в том, что в Unix-системах не такой примитивный механизм порождения процессов, как в других системах


Ну-ну... Воздержусь от обширного потока флуда, скажу только, что если взять win32, то там вместо нового процесса создается поток и не надо смешивать fork() и CreateProcess - у них совсем разное назачение.

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог