Модератор: Модераторы разделов
-
_Gleb_
- Сообщения: 467
- ОС: Kubuntu 12.04 LTS
Сообщение
_Gleb_ »
Извините, что я к вам опять с элементарным вопросом обращаюсь, но ответа найти не смог. Вот это код:
Код: Выделить всё
fseek(bfile, 18, 0);
int A = getc(bfile);
printf("%c", A); /* Ещё пробовал printf("%c", (char)A) */
Компилируется, но при запуске выдаёт ошибку сегментирования. Что за ошибка и с чем это связано?
На языке С код, понятное дело.
-
Liksys
- Сообщения: 2910
Сообщение
Liksys »
Смещение в файле действительное?
-
_Gleb_
- Сообщения: 467
- ОС: Kubuntu 12.04 LTS
Сообщение
_Gleb_ »
А как это? Ну, от начала файла смещение, на 18 байт. По крайней мере, так задумывалось...
-
slasher
- Сообщения: 92
- ОС: Arch
Сообщение
slasher »
Если размер файла меньше 18 байт, то читать оттуда нельзя, вроде бы.
Today would be a good day to DIE.
-
_Gleb_
- Сообщения: 467
- ОС: Kubuntu 12.04 LTS
Сообщение
_Gleb_ »
А он никак не меньше.
-
anonymous.ru
- Сообщения: 614
Сообщение
anonymous.ru »
а попробуй так: printf("%d", A);
просто очень инетресно, что у тебя в переменной А
а падает точно на printf?
не раньше?
не на getc?
-
sergio
- Сообщения: 436
- Статус: Интересующийся новичок
- ОС: Debian GNU/Linux 4 & 5
Сообщение
sergio »
slasher писал(а): ↑27.08.2007 12:48
Если размер файла меньше 18 байт, то читать оттуда нельзя, вроде бы.
Не 18, а
19 байт, господа-с...
Debian GNU/Linux 4 -- AMD Athlon64 3000+ / Asus 7600GS -- Gnome
Debian GNU/Linux 5 -- Dell (Vostro) 500 (Celeron M560 / iGM965) -- Gnome
-
_Gleb_
- Сообщения: 467
- ОС: Kubuntu 12.04 LTS
Сообщение
_Gleb_ »
anonymous.ru писал(а): ↑27.08.2007 14:53
а падает точно на printf?
не раньше?
не на getc?
Похоже, оно на fopen падает. Может, я запускаю неправильно? Так надо:
?
-
Uncle_Theodore
- Сообщения: 3339
- ОС: Slackware 12.2, ArchLinux 64
Сообщение
Uncle_Theodore »
_Gleb_ писал(а): ↑13.10.2007 03:17
anonymous.ru писал(а): ↑27.08.2007 14:53
а падает точно на printf?
не раньше?
не на getc?
Похоже, оно на fopen падает. Может, я запускаю неправильно? Так надо:
?
Как запускать, зависит от того, что написано в аргументах int main().
Что находится в переменной bfile?