LINUX.ORG.RU

Не работает setenv и putenv.


0

0

Короче в коде вызываю установку переменных, но они не усанавливаются.
Вот кусок кода:


void ldmScreen::changeDM ( int id, bool on )
{
//	setenv ( "LDM_NAME_SESSION", list_name_dm[id], 1 );
//	setenv ( "LDM_EXE_SESSION", list_start_script_dm[id], 1 );
	if ( putenv ( "LDM_NAME_SESSION" ) < 0 ) cout << "Error setenv\n";
	if ( setenv ( "LDM_EXE_SESSION", "TEST", 1 ) < 0 ) cout << "Error setenv\n";
	releaseDM ( );
	dm[id].on ( );

	/********************  For Debug  *********************/
	if ( on ) cout << id << " id   " << list_name_dm[id] << " on;\n";
	else	cout << id << " id   " << list_name_dm[id] << " off;\n";
	/****************************************************/
}

Функция точно вызывается, об этом говорят строчки которые 
выводятся для проверки индексов ( Видно в коде ). При этом сообщение 
об ошибке "Error setenv\n" , которое бы вылезло, если установка прошла бы 
не успешно не выводятся.

А вот признаки не становки ( проверено после запуска программы ):

alexandr@cyclon alexandr $ echo $LDM_EXE_SESSION

alexandr@cyclon alexandr $ echo $LDM_NAME_SESSION

alexandr@cyclon alexandr $

Может кто подскажет что не так!

Заранее спасибо!!!
★★★★★

Ответ на: комментарий от anonymous

А причём тут переменный тут речь о переменных окружения, т.е. как я понимаю переменных глобыльного маштаба. Ну типа как файл что ли, трдно привести пример, т.е. его видно отовсюду, кем бы он не был создан, ну разве что может прав не хватит.

cyclon ★★★★★
() автор топика
Ответ на: комментарий от cyclon

> глобыльного маштаба. Ну типа как файл что ли,
> трдно привести пример, т.е. его видно отовсюду

переменные окружения это просто кусок памяти процесса,
и видны они, соответственно, только в самом процессе.
точно так же, как аргументы (argc, argv) процесса.

idle ★★★★★
()


cyclon,

Я тебе _уже_ давал ссылку на Unix Programming FAQ.

http://www.erlenstar.demon.co.uk/unix/faq_toc.html

Смотри вопрос:
1.2 Environment variables

И в ответе есть строка:
> Remember that environment variables are inherited; each process has
> a separate copy of the environment. As a result, you can't change
> the value of an environment variable in another process, such as the
> shell.
>

Или ты думаешь, что задаешь какие-то новые вопросы, которых до тебя
ни один чайник не задавал?

Если у тебя проблемы с английским, подпишись на fido7.ru.unix.prog,
там публикуются FAQи на русском, со ссылками на всякие очень полезные
документы и книги.
Если ты не знаешь, как настороить news reader, или у тебя нет в
досягаемости хорошего news server'а, воспользуйся http://talk.mail.ru
(http://back.talk.ru:8081/forum/fido7.ru.unix.prog)

"Читаете доки - они рулез" (C)

HTH

anonymous
()
Ответ на: комментарий от anonymous

Не подскажете каких-нить news servers по linux-development тематике? Желательно русскоязычные, но подойдут и анго.

Dead ★★★★
()
Ответ на: комментарий от Dead

Что значит "news servers по linux-development тематике"?

Есть USENET news-группы по linux-тематике в иерархиях comp.*,
alt.* и многочисленных региональных, скажем relcom.*.
Есть FIDO-эхи по linux-тематике (впрочем, их обычно видно как
обычные ньюс-группы в иерархии fido7.*).
Этого добра как собак нерезаных.

Доступ к этому добру можно получить:

1. Через NNTP server вашего провайдера

2. Через какой-то еще платный или бесплатный NNTP сервер.

3. Русскоязычные иерархии (relcom.* и fido7.*) доступны
через http://talk.mail.ru (жмешь на "Все форумы")

4. Конечно же, http://groups.google.com

Лично я много лет пользуюсь халявным немецким ньюс-сервером.

Идешь на http://news.individual.net/ - и читаешь, как
зарегистрироваться (надо послать им письмо). Они тебе
пришлют username/password для NTTP-аутентификации.
Это бесплатно.
У них отличный выбор ньюс-групп (включая relcom.*
и fido7.*), можно постить, очень стабильная работа.

HTH

anonymous
()
Ответ на: комментарий от anonymous

/**************************************************************/
cyclon,

Я тебе _уже_ давал ссылку на Unix Programming FAQ.

http://www.erlenstar.demon.co.uk/unix/faq_toc.html

Смотри вопрос:
1.2 Environment variables

И в ответе есть строка:
> Remember that environment variables are inherited; each process has
> a separate copy of the environment. As a result, you can't change
> the value of an environment variable in another process, such as the
> shell.
>

Или ты думаешь, что задаешь какие-то новые вопросы, которых до тебя
ни один чайник не задавал?

Если у тебя проблемы с английским, подпишись на fido7.ru.unix.prog,
там публикуются FAQи на русском, со ссылками на всякие очень полезные
документы и книги.
Если ты не знаешь, как настороить news reader, или у тебя нет в
досягаемости хорошего news server'а, воспользуйся http://talk.mail.ru
(http://back.talk.ru:8081/forum/fido7.ru.unix.prog)

"Читаете доки - они рулез" (C)

HTH
/***************************************************************/

Ну вопервых смотрел, и за ссылку спасибо, она действительно ршила много вопросов. Другое дело что могли ( как мне казалось на тот момент ) существовать какие от извращённые способы сотворения данного зла.

Спасибо что обломал ;)

cyclon ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.