Помогите error пофиксить

Модератор: Модераторы разделов

neochapay
Сообщения: 22

Помогите error пофиксить

Сообщение neochapay »

Вот код либы
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
Спасибо сказали:
al.t
Сообщения: 52
ОС: Slackware

Re: Помогите error пофиксить

Сообщение al.t »

думаю на место 113й строки, нужно что то вроде этого

Код: Выделить всё

char path[256];
sprintf(path, "~/.dys/%s", cAppName);
cFile = fopen(path, "rb");


и вообще не понятно для чего это все замудрено, но имхо fopen не поймет "~/". Судя по последним ревизиям, вправлял php'шник ;)
Спасибо сказали:
MiK13
Сообщения: 1289
ОС: Linux Debian

Re: Помогите error пофиксить

Сообщение MiK13 »

А что предполагал автор программы, когда писал

Код: Выделить всё

    cFile = fopen("~/.dys/".cAppName, "rb");
?
У структуры/класса "~/.dys/" есть элемент cAppName ?

al.t писал(а):
16.12.2008 16:06
имхо fopen не поймет "~/".

Команда
echo ~
пказывает полный путь к каталогу юзера. Т.е. знак ~ расширяется bash'ем.
fopen, скорее всего, поймёт "~/", но будет пытаться открыть файл именно из каталога ~, а не из домашнего каталога юзера.

P.S. И ещё один вопрос: Программа для DOS/Windows или для UNIX/Linux ? Если для Linux, то зачем во 2-м параметре fopen буква 'b' ?
Спасибо сказали:
al.t
Сообщения: 52
ОС: Slackware

Re: Помогите error пофиксить

Сообщение al.t »

MiK13 писал(а):
16.12.2008 18:10
fopen, скорее всего, поймёт "~/", но будет пытаться открыть файл именно из каталога ~, а не из домашнего каталога юзера.

вобщем то это и имелось в виду
Спасибо сказали:
Аватара пользователя
RasenHerz
Сообщения: 1341
ОС: Arch Linux amd64

Re: Помогите error пофиксить

Сообщение RasenHerz »

MiK13 писал(а):
16.12.2008 18:10
P.S. И ещё один вопрос: Программа для DOS/Windows или для UNIX/Linux ? Если для Linux, то зачем во 2-м параметре fopen буква 'b' ?

программа кроссплатформенная, все хедеры из стандартной библиотеки.
Спасибо сказали:
neochapay
Сообщения: 22

Re: Помогите error пофиксить

Сообщение neochapay »

Программа для Linux, и писаться должно в файл ~/.dys/AppName
Спасибо сказали:
al.t
Сообщения: 52
ОС: Slackware

Re: Помогите error пофиксить

Сообщение al.t »

ну тогда, если писать по уму, то тебе нужно примерно следующее
1. определить uid пользователя (man getuid)
2. получить home пользователя (man getpw)
3. склеить все это дело sprintf(path, "%s/.dys/%s", home, cAppName)
и потом уже открывать.
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable

Re: Помогите error пофиксить

Сообщение Portnov »

Ну, получить $HOME можно проще - man getenv :)
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали: