2015-02-01 6 views
0

Я пытаюсь сделать n потоков модифицировать файл. У меня есть индексы для каждого потока, но я хочу, чтобы с этими индексами я мог сделать fseek и fputc. это дает мне ошибку сегментации. есть ли способ реализовать это без использования мьютекса?темы, изменяющие один и тот же файл

Резьба1

for (i=0; i<5; i++) { 
    fseek(archE, i, SEEK_SET) 
    fputc('*', archE) 
} 

Резьба2

for (i=5; i<10; i++) { 
    fseek(archE, i, SEEK_SET) 
    fputc('*', archE) 
} 

спасибо!

+0

Я думаю, fopen внутри цикла опечатка! Это fseek? – Anonymous

+0

Это не ваш * настоящий * код, не так ли? Я имею в виду, вы используете 'fseek', а не' fopen', правильно? Post ** настоящий ** код, который воспроизводит вашу проблему, пожалуйста. – WhozCraig

ответ

0

Вы должны открыть отдельный файловый дескриптор для каждого потока (так что каждый будет иметь отдельный указатель файла). Затем вы должны связать свою программу со временем выполнения MT C. Все должно работать без мьютексов.

+0

Я собираюсь попробовать это сейчас! спасибо – Josepas

+0

большое вам спасибо! он работает как шарм, Im дает каждому потоку строку с именем файла. – Josepas

Смежные вопросы