![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 | ||
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
![]()
Вобщем, ситуация такая.
Несколько процессов, созданных командой fork (но я думаю, значения это не имеет) выводят информацию на экран. Все операции вывода нумеруются и номер выводится возле выводимой информации. Понятно, что стандартный вывод - это разделяемый ресурс и поэтому я огородил его мутексом. При выводе на экран теперь все окей, но если я пытаюсь перенаправить вывод - получается беда (все перемешивается). Код:
Цитата:
Цитата:
Собственно, каким образом перенаправления вывода влияет на синхронизацию вывода мутексом? - или я синхронизирую вообще неверно? - но без синхронизации каша получается при выводе на экран... С мутексом я поборол кашу на экране. Но чем стандартный вывод отличается от файла в плане синхронизации? |
||
![]() |
![]() |
![]() |
#2 |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
![]()
Короче, еще я пронумеровал потоки )
И вот вижу, что при перенаправлении сначала в файл помещаются все данные, одного потока, потом другого и т.п. Т.е. каждый поток пишет данные в "свой файл", а потом они слепляются, выходит? |
![]() |
![]() |
![]() |
#3 | |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
![]()
короче если все пронумеровать, то выглядит так:
Цитата:
![]() Вобщем сам спросил, сам ответил. |
|
![]() |
![]() |
![]() |
#4 | |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
![]()
короче если все пронумеровать, то выглядит так:
Цитата:
![]() Вобщем сам спросил, сам ответил. |
|
![]() |
![]() |
![]() |
#5 |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
![]()
И все эти fprintf с потоками тоже не работают, вроде как.
Пользовать надо open, write, read ![]() |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,372
|
![]()
Если пишете одной операцией записи, тогда вам синхронизацию не надо.
Порядок строк вы никакой синхронизацией не решите. Насчет проблем при перенаправлении - сделайте 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 |