Полностью текст не включаю, только самое интересное:
...
#include <fcntl.h>
#include <gdbm/ndbm.h>
...
int some_function(int action, int type, int source)
{
DBM *db_file;
...
db_file = dbm_open (DB_FILE, O_RDWR | O_CREAT, 0666); /* DB_FILE объявлен в самописном .h как #define DB_FILE = "~/.program_name/database" */
...
}
Компилирую с -Wall -ansi -lgdbm_compat, предупреждений нет, только на строчке с открытием базы данных вываливается ошибка:
change_data.c: В функции «change_data»:
change_data.c:18:24: ошибка: expected expression before «=» token
change_data.c:18:24: ошибка: слишком мало аргументов в вызове функции «dbm_open»
In file included from change_data.c:5:0:
/usr/include/gdbm/ndbm.h:55:14: замечание: declared here