Как создать файл? Глупо, но все же

Все о программировании под *nix
Аватара пользователя
eof
Маньяк
Сообщения: 180
Зарегистрирован: 05 июл 2002, 12:22
Откуда: minsk.by
Контактная информация:

Как создать файл? Глупо, но все же

Сообщение eof »

В общем, в следующем фрагменте прога категорически отказывается работать:
if ((db = fopen ("~/.dbword", "a+b")) == NULL) {
fprintf (stderr, "Cannot create datdbase");
exit (EXIT_FAILURE);
}

В любом случае пишет, что не хочет создавать файл, и все тут.
Может, я вообще неправильно пытаюсь создать файл? (Хотя, в доке написано, что "a+b" открывает, а если не существует, то создает файл с указанным именем для дополнения.)
I hope, bug is not in my head...

Anonymous

Сообщение Anonymous »

tren@host[14:58:42]:/tmp 1179$ ls -l /tmp/testdb
ls: /tmp/testdb: No such file or directory
zsh: exit 1 ls --color -l /tmp/testdb
tren@host[14:59:43]:/tmp 1180$ cat /tmp/test.c
#include <stdio.h>
int main() {
FILE *db;
if ((db = fopen ("/tmp/testdb", "a+b")) == NULL) {
fprintf (stderr, "Cannot create datdbase");
exit (-1);
}
}
tren@host[14:59:51]:/tmp 1181$ cc -o /tmp/test /tmp/test.c
tren@host[15:00:10]:/tmp 1182$ /tmp/test
zsh: exit 176 /tmp/test
tren@host[15:00:18]:/tmp 1183$ ls -l /tmp/testdb
-rw-r--r-- 1 tren users 0 2003-01-11 15:00 /tmp/testdb
tren@host15:00:26]:/tmp 1184$

Аватара пользователя
Llama
Неотъемлемая часть форума
Сообщения: 9749
Зарегистрирован: 06 фев 2002, 11:40
Откуда: Менск

Re: Как создать файл? Глупо, но все же

Сообщение Llama »

eof писал(а):В общем, в следующем фрагменте прога категорически отказывается работать:
А ей можно писать, туда, куда ты хочешь? Попробуй под рутом пустить...

Гость

Сообщение Гость »

eof
"~/.dbwork - это shell тебе раскрывает ~ в имя home-каталога пользователя, glibc такого за тебя не сделает. Сделай что-либо вроде такого:

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

char *file_name;

  asprintf(&file_name,"%s/.dbwork",getenv("HOME"));
  ..... ну а дальше уже open()

Ответить