Модераторы: xvr
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> установить рабочий каталог 
V
    Опции темы
admsasha
Дата 15.6.2011, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 28.1.2005

Репутация: 1
Всего: 6



Есть определенный проект, который загружает ресурсы (картинки) по относительному пусти ("images/pic1.png")

Проблема в том, что если его запусти из dolphin (KDE 4.5.5), то рабочий каталог будет "~/Документы", а если из консоли, то рабочий каталог будет тот из которого запущен проект.


Вот на этом коде я проверил теорию
Код

#include <stdio.h>
#include <stdlib.h>

int main (){
  system ("pwd > ~/test.txt");
  return 0;
}


если запускать его из Dolphin то в test.txt будет "/home/sasha/Документы", а если из консоли, то полный путь до a.out


Как установить каталог где находится бинарник рабочим ?

PM MAIL WWW ICQ Jabber   Вверх
fish9370
Дата 15.6.2011, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: 2
Всего: 1



man chdir


--------------------
undefined
PM MAIL WWW ICQ   Вверх
admsasha
Дата 15.6.2011, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 28.1.2005

Репутация: 1
Всего: 6



Цитата(fish9370 @  15.6.2011,  23:55 Найти цитируемый пост)
man chdir

Не кроссплатформенно (под windows не работает), или это не неизбежно ? 

Ну а текущие место запуска извлекать из argv[0] ? или есть более разумный способ ?
PM MAIL WWW ICQ Jabber   Вверх
Alca
Дата 15.6.2011, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: нет
Всего: 50



http://msdn.microsoft.com/en-us/library/ms...(v=VS.100).aspx
Цитата

This POSIX function is deprecated. Use the ISO C++ conformant _chdir instead.


Добавлено @ 17:49
Цитата

Не кроссплатформенно (под windows не работает), или это не неизбежно ?

неправда

Это сообщение отредактировал(а) Alca - 15.6.2011, 17:51


--------------------
PM WWW ICQ Skype Jabber   Вверх
admsasha
Дата 15.6.2011, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 28.1.2005

Репутация: 1
Всего: 6



Цитата(Alca @  16.6.2011,  00:49 Найти цитируемый пост)
ЦитатаНе кроссплатформенно (под windows не работает), или это не неизбежно ?неправда

действительно...
Единственное, это под windows нужно обязательно direct.h инклюдить, под linux не нужно. Поэтому я и думал, что не работает chdir под windows.  Спасибо за ссылку.
PM MAIL WWW ICQ Jabber   Вверх
fish9370
Дата 15.6.2011, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: 2
Всего: 1



Цитата(Alca @  15.6.2011,  17:49 Найти цитируемый пост)
This POSIX function is deprecated. Use the ISO C++ conformant _chdir instead.


интересно почему она стала устаревшей?


--------------------
undefined
PM MAIL WWW ICQ   Вверх
bsa
Дата 16.6.2011, 11:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 16
Всего: 196



Цитата(fish9370 @  15.6.2011,  18:32 Найти цитируемый пост)
интересно почему она стала устаревшей? 

Потому что POSIX. мелкомягкие все POSIX функции объявили устаревшими.
PM   Вверх
volatile
Дата 16.6.2011, 23:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: 2
Всего: 85



не то чтобы устаревшими.
Цитата
deprecate  
1) протестовать, выступать против, резко осуждать, возражать to deprecate war — выступать против войны Syn: criticize 
2) преуменьшать, умалять; относиться с пренебрежением He deprecated his own contribution.

читай мелкомягкие протестуют, выступают против, резко осуждают и возражают против POSIX Функций!  smile 


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.0786 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.