Модератор: Модераторы разделов
-
IMB
- Сообщения: 2567
- ОС: Debian
Сообщение
IMB »
Доброго дня!
Пытаюсь организовать запись в файл следующим кодом:
Код: Выделить всё
#define SEQ "/tmp/msp_seq"
int seq;
if ((fd = open(SEQ, O_WRONLY)) < 0) {
if (errno == ENOENT) {
if ((fd = creat(SEQ, S_IRUSR | S_IWUSR)) < 0) {
printf("Can't create file: %s\n", SEQ);
exit(-1);
} else {
printf("Created file: %s\n", SEQ);
write(fd, seq, 32);
printf("Starting seq = %#x\n", seq);
}
} else {
printf("Can't open file: %s\n", SEQ);
exit(-1);
}
} else {
write(fd, seq, 32);
printf("Starting seq = %#x\n", seq);
}
close(fd);
Файл успешно создаётся, но запись в него не идёт.
В чём я ошибся?
Спасибо.
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Сообщение
watashiwa_daredeska »
open(SEQ, O_CREAT | O_WRONLY | O_TRUNC) — и не надо никакого creat в обработчике ошибок.
write(fd, &seq, sizeof(seq))
-
drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Сообщение
drBatty »
IMB писал(а): ↑23.10.2009 12:34
Файл успешно создаётся, но запись в него не идёт.
В чём я ошибся?
почему вы не хотите воспользоваться fopen & fwrite? ИМХО они более удобные.
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Сообщение
watashiwa_daredeska »
drBatty писал(а): ↑25.10.2009 08:20
воспользоваться fopen & fwrite? ИМХО они более удобные.
Чем, если не секрет? По моему, те же яйца в профиль.
-
drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Сообщение
drBatty »
watashiwa_darede... писал(а): ↑25.10.2009 09:28
воспользоваться fopen & fwrite? ИМХО они более удобные.
Чем, если не секрет? По моему, те же яйца в профиль.
ну не знаю. просто думаю что топикстартер не допустил-бы таких ошибок, если воспользовался-бы fopen().
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Сообщение
watashiwa_daredeska »
drBatty писал(а): ↑25.10.2009 09:44
думаю что топикстартер не допустил-бы таких ошибок, если воспользовался-бы fopen()
Просто, топикстартер не дочитал документацию по флагам open(). От нечтения документации ничего не помогает, кроме чтения

-
drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Сообщение
drBatty »
watashiwa_darede... писал(а): ↑25.10.2009 09:57
Просто, топикстартер не дочитал документацию по флагам open(). От нечтения документации ничего не помогает, кроме чтения smile.gif
полностью поддерживаю!