|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.05.2014, 11:23 | #1 | ||
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
Процессы и файл
Вобщем, ситуация такая.
Несколько процессов, созданных командой fork (но я думаю, значения это не имеет) выводят информацию на экран. Все операции вывода нумеруются и номер выводится возле выводимой информации. Понятно, что стандартный вывод - это разделяемый ресурс и поэтому я огородил его мутексом. При выводе на экран теперь все окей, но если я пытаюсь перенаправить вывод - получается беда (все перемешивается). Код:
Цитата:
Цитата:
Собственно, каким образом перенаправления вывода влияет на синхронизацию вывода мутексом? - или я синхронизирую вообще неверно? - но без синхронизации каша получается при выводе на экран... С мутексом я поборол кашу на экране. Но чем стандартный вывод отличается от файла в плане синхронизации? |
||
03.05.2014, 11:26 | #2 |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
Короче, еще я пронумеровал потоки )
И вот вижу, что при перенаправлении сначала в файл помещаются все данные, одного потока, потом другого и т.п. Т.е. каждый поток пишет данные в "свой файл", а потом они слепляются, выходит? |
03.05.2014, 11:31 | #3 | |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
короче если все пронумеровать, то выглядит так:
Цитата:
Вобщем сам спросил, сам ответил. |
|
03.05.2014, 12:50 | #4 | |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
короче если все пронумеровать, то выглядит так:
Цитата:
Вобщем сам спросил, сам ответил. |
|
03.05.2014, 12:51 | #5 |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
И все эти fprintf с потоками тоже не работают, вроде как.
Пользовать надо open, write, read |
03.05.2014, 16:23 | #6 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
Если пишете одной операцией записи, тогда вам синхронизацию не надо.
Порядок строк вы никакой синхронизацией не решите. Насчет проблем при перенаправлении - сделайте fflush после записи (не выходя из семафора). |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Процессы | Arsenx777 | Общие вопросы Delphi | 2 | 19.11.2011 20:23 |
процессы | An123 | Помощь студентам | 0 | 14.01.2010 21:52 |
Процессы | Bat{CMD}_Men | Win Api | 5 | 03.10.2009 12:27 |
процессы | lelik3000 | Win Api | 2 | 23.10.2008 09:04 |
Процессы | student_63 | Win Api | 4 | 13.04.2008 11:46 |