Вот код либы
http://code.google.com/p/dyswindows/source...fig/libconfig.c
Вот ошибка при компилинге...
libconfig.c:113: error: request for member ‘cAppName’ in something not a structure or union
Помогите error пофиксить
Модератор: Модераторы разделов
-
al.t
- Сообщения: 52
- ОС: Slackware
Re: Помогите error пофиксить
думаю на место 113й строки, нужно что то вроде этого
и вообще не понятно для чего это все замудрено, но имхо fopen не поймет "~/". Судя по последним ревизиям, вправлял php'шник
Код: Выделить всё
char path[256];
sprintf(path, "~/.dys/%s", cAppName);
cFile = fopen(path, "rb");и вообще не понятно для чего это все замудрено, но имхо fopen не поймет "~/". Судя по последним ревизиям, вправлял php'шник
-
MiK13
- Сообщения: 1289
- ОС: Linux Debian
Re: Помогите error пофиксить
А что предполагал автор программы, когда писал ?
У структуры/класса "~/.dys/" есть элемент cAppName ?
Команда
echo ~
пказывает полный путь к каталогу юзера. Т.е. знак ~ расширяется bash'ем.
fopen, скорее всего, поймёт "~/", но будет пытаться открыть файл именно из каталога ~, а не из домашнего каталога юзера.
P.S. И ещё один вопрос: Программа для DOS/Windows или для UNIX/Linux ? Если для Linux, то зачем во 2-м параметре fopen буква 'b' ?
Код: Выделить всё
cFile = fopen("~/.dys/".cAppName, "rb");У структуры/класса "~/.dys/" есть элемент cAppName ?
Команда
echo ~
пказывает полный путь к каталогу юзера. Т.е. знак ~ расширяется bash'ем.
fopen, скорее всего, поймёт "~/", но будет пытаться открыть файл именно из каталога ~, а не из домашнего каталога юзера.
P.S. И ещё один вопрос: Программа для DOS/Windows или для UNIX/Linux ? Если для Linux, то зачем во 2-м параметре fopen буква 'b' ?
-
al.t
- Сообщения: 52
- ОС: Slackware
-
RasenHerz
- Сообщения: 1341
- ОС: Arch Linux amd64
Re: Помогите error пофиксить
программа кроссплатформенная, все хедеры из стандартной библиотеки.
-
neochapay
- Сообщения: 22
Re: Помогите error пофиксить
Программа для Linux, и писаться должно в файл ~/.dys/AppName
-
al.t
- Сообщения: 52
- ОС: Slackware
Re: Помогите error пофиксить
ну тогда, если писать по уму, то тебе нужно примерно следующее
1. определить uid пользователя (man getuid)
2. получить home пользователя (man getpw)
3. склеить все это дело sprintf(path, "%s/.dys/%s", home, cAppName)
и потом уже открывать.
1. определить uid пользователя (man getuid)
2. получить home пользователя (man getpw)
3. склеить все это дело sprintf(path, "%s/.dys/%s", home, cAppName)
и потом уже открывать.
-
Portnov
- Модератор
- Сообщения: 1786
- Статус: Матёрый линуксоид
- ОС: Debian testing/unstable
Re: Помогите error пофиксить
Ну, получить $HOME можно проще - man getenv :)
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru