Re: не множко не в тему..
On Sunday 09 October 2005 20:19, Artem Chuprina wrote: > Reuben Kagan -> debian-russian@lists.debian.org @ Sun, 9 Oct 2005 18:12:40 > +0400 (MSD): > > RK> Извините пожалуйста, я кажется совсем ничего не понимаю -- разве > RK> хендлы открытых файлов после форка не общие? то есть из stdin они > RK> будут читать одни и те же строки? > > Хендлы - нет. Это данные процесса, а у процессов нет общих данных. А > что они будут читать из stdin, зависит от того, кто у нас сегодня stdin. > Если пайп или сокет, то кто первый встал, того и тапки (плюс надо еще > учитывать буферизацию) - read(2) забирает оттуда прочитанное с концами. > Если файл - будут читать одни и те же. > Решилось использованием dup. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: не множко не в тему..
Reuben Kagan -> debian-russian@lists.debian.org @ Sun, 9 Oct 2005 18:12:40 +0400 (MSD): RK> Извините пожалуйста, я кажется совсем ничего не понимаю -- разве RK> хендлы открытых файлов после форка не общие? то есть из stdin они RK> будут читать одни и те же строки? Хендлы - нет. Это данные процесса, а у процессов нет общих данных. А что они будут читать из stdin, зависит от того, кто у нас сегодня stdin. Если пайп или сокет, то кто первый встал, того и тапки (плюс надо еще учитывать буферизацию) - read(2) забирает оттуда прочитанное с концами. Если файл - будут читать одни и те же. -- Artem Chuprina RFC2822: Jabber: [EMAIL PROTECTED] А вы поподробнее, поподробнее. А заодно и быстрее будет... -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: не множко не в тему..
On Sunday 09 October 2005 15:11, Dmitry A. Fedorov wrote: > On Sun, 9 Oct 2005, Dmitry Nezhevenko wrote: > > > Впрочем, можно и так: пусть один процесс берет только четные строки, а > > > другой - нечетные. > > > > Не катит. Надо чтобы читалось как есть > > > > > Все равно обоим читать весь файл. > > > > Нет > > Тогда это невозможно: определить концы строк в плоском файле можно > только читая файл. Заранее смещения концов строк знать невозможно. угу > > > Решил входной файл сделать фикс. длины.. Теперь все просто. > > Не файл, а записи в нем. Тогда эта задача формулируется совсем по > другому. Согласен -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: не множко не в тему..
On Sun, 9 Oct 2005, Dmitry Nezhevenko wrote: > > Впрочем, можно и так: пусть один процесс берет только четные строки, а > > другой - нечетные. > > Не катит. Надо чтобы читалось как есть > > > Все равно обоим читать весь файл. > > Нет Тогда это невозможно: определить концы строк в плоском файле можно только читая файл. Заранее смещения концов строк знать невозможно. > Решил входной файл сделать фикс. длины.. Теперь все просто. Не файл, а записи в нем. Тогда эта задача формулируется совсем по другому. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: не множко не в тему..
On Sunday 09 October 2005 14:52, Dmitry A. Fedorov wrote: > Посылать бесполезно: он хочет обойтись без семафоров и разделяемой > памяти. УГУ > Впрочем, можно и так: пусть один процесс берет только четные строки, а > другой - нечетные. Не катит. Надо чтобы читалось как есть > Все равно обоим читать весь файл. Нет > > Или пусть ему препод объяснит, что он понимает здесь под словом "читать" > и "файл" - без этого задача слишком неопределена. При чем тут препод?? Решил входной файл сделать фикс. длины.. Теперь все просто. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: не множко не в тему..
On Sun, 9 Oct 2005, Artem Chuprina wrote: > Dmitry Nezhevenko -> debian-russian@lists.debian.org @ Sun, 9 Oct 2005 > 13:44:30 +0300: > > DN> Есть Сишная прога, которая открывает текстовый файл для чтения и > DN> делает fork(). Вопрос в том, как теперь заставить эти 2 процесса > DN> читать этот файл одновременно, но чтобы строки прочитанные 1 > DN> потоком не были прочитаны вторым и наоборот. > > Никак. То бишь поизгаляться, конечно, можно (организовать параллельный > механизм синхронизации через семафор и передачи позиции в файле через > пайп или shared memory). Но дальше объяснять я буду только после > предоплаты, а бесплатно только к Стивенсу пошлю. Посылать бесполезно: он хочет обойтись без семафоров и разделяемой памяти. Впрочем, можно и так: пусть один процесс берет только четные строки, а другой - нечетные. Все равно обоим читать весь файл. Или пусть ему препод объяснит, что он понимает здесь под словом "читать" и "файл" - без этого задача слишком неопределена. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: не множко не в тему..
On Sunday 09 October 2005 14:33, Artem Chuprina wrote: > Никак. То бишь поизгаляться, конечно, можно (организовать параллельный > механизм синхронизации через семафор и передачи позиции в файле через > пайп или shared memory). Но дальше объяснять я буду только после > предоплаты, а бесплатно только к Стивенсу пошлю. Разобрался... -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: не множко не в тему..
Dmitry Nezhevenko -> debian-russian@lists.debian.org @ Sun, 9 Oct 2005 13:44:30 +0300: DN> Есть Сишная прога, которая открывает текстовый файл для чтения и DN> делает fork(). Вопрос в том, как теперь заставить эти 2 процесса DN> читать этот файл одновременно, но чтобы строки прочитанные 1 DN> потоком не были прочитаны вторым и наоборот. Никак. То бишь поизгаляться, конечно, можно (организовать параллельный механизм синхронизации через семафор и передачи позиции в файле через пайп или shared memory). Но дальше объяснять я буду только после предоплаты, а бесплатно только к Стивенсу пошлю. -- Artem Chuprina RFC2822: Jabber: [EMAIL PROTECTED] Пользователь юникса перестаёт быть пользователем юникса если после его пользования пользованный юникс перестаёт быть юниксом. (с) -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]