Ошибка сегментирования

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

_Gleb_
Сообщения: 467
ОС: Kubuntu 12.04 LTS

Ошибка сегментирования

Сообщение _Gleb_ »

Извините, что я к вам опять с элементарным вопросом обращаюсь, но ответа найти не смог. Вот это код:

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

fseek(bfile, 18, 0);
int A = getc(bfile);
printf("%c", A); /* Ещё пробовал printf("%c", (char)A) */

Компилируется, но при запуске выдаёт ошибку сегментирования. Что за ошибка и с чем это связано?
На языке С код, понятное дело.
Изображение
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: Ошибка сегментирования

Сообщение Liksys »

Смещение в файле действительное?
Спасибо сказали:
_Gleb_
Сообщения: 467
ОС: Kubuntu 12.04 LTS

Re: Ошибка сегментирования

Сообщение _Gleb_ »

А как это? Ну, от начала файла смещение, на 18 байт. По крайней мере, так задумывалось...
Изображение
Спасибо сказали:
Аватара пользователя
slasher
Сообщения: 92
ОС: Arch

Re: Ошибка сегментирования

Сообщение slasher »

Если размер файла меньше 18 байт, то читать оттуда нельзя, вроде бы.
Today would be a good day to DIE.
Спасибо сказали:
_Gleb_
Сообщения: 467
ОС: Kubuntu 12.04 LTS

Re: Ошибка сегментирования

Сообщение _Gleb_ »

А он никак не меньше.
Изображение
Спасибо сказали:
Аватара пользователя
anonymous.ru
Сообщения: 614

Re: Ошибка сегментирования

Сообщение anonymous.ru »

а попробуй так: printf("%d", A);
просто очень инетресно, что у тебя в переменной А
а падает точно на printf?
не раньше?
не на getc?
:drinks:
Спасибо сказали:
sergio
Сообщения: 436
Статус: Интересующийся новичок
ОС: Debian GNU/Linux 4 & 5

Re: Ошибка сегментирования

Сообщение 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

Re: Ошибка сегментирования

Сообщение _Gleb_ »

anonymous.ru писал(а):
27.08.2007 14:53
а падает точно на printf?
не раньше?
не на getc?

Похоже, оно на fopen падает. Может, я запускаю неправильно? Так надо:

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

./a.out filename

?
Изображение
Спасибо сказали:
Аватара пользователя
Uncle_Theodore
Сообщения: 3339
ОС: Slackware 12.2, ArchLinux 64

Re: Ошибка сегментирования

Сообщение Uncle_Theodore »

_Gleb_ писал(а):
13.10.2007 03:17
anonymous.ru писал(а):
27.08.2007 14:53
а падает точно на printf?
не раньше?
не на getc?

Похоже, оно на fopen падает. Может, я запускаю неправильно? Так надо:

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

./a.out filename

?

Как запускать, зависит от того, что написано в аргументах int main().
Что находится в переменной bfile?
Спасибо сказали: