Перейти к содержанию

Рекомендуемые сообщения

Опубликовано

дано: Linux, somefile - обычный текстовый файл ~50мб вида:

строка1

строка2

строка3

...

строкаN

хочу написать программу(mainprog) которая работая

постоянно(как демон) считывает строки из файла somefile

и запускает для их обработки M(от 10 до 100)

квазипаралельных процессов(easyprog) т.к. в зависимости

от вида строки процесс ее обработки будет либо дольше

либо короче(от 1 до 5 секунд).

Обработав строку программа easyprog должна вернуть

программе mainprog исходную строку и результат обработки.

Mainprog должна следить за выполнением этих паралельных

процессов и как только один из них завершается - запускать

следующий процесс для новой строки из файла somefile и так до

конца файла somefile.

Одновременно должно выполняться не более M процессов easyprog.

вопрос: как это реализовать на си/си++.

если можно - с примерами.

Заранее благодарен.

Опубликовано

Есть программа, которая делает почти то, что нужно - xargs. Либо её непосредственно использовать, либо исходники подкрутить.

  • 2 недели спустя...
Опубликовано

Бля, а что такое квазипараллельные процессы?Smile))

Нужны именно процессы? Почему не потоки? Потоки imho лучше.

Если все-таки процессы, то для коммуникации с ними можно юзать или сокеты, или потоки (в смысле pipe), или сообщения (если строки небольшие). Информации по всему этому много. По тхридам тоже.

Опубликовано

To smh:

"Межпроцессовые коммуникации LINUX" я прочитал до того как задал вопрос. И так как я всё-таки задал вопрос - значит что-то в прочитанном меня не устроило.

И вообще любая документация по с\с++ под *nix грешит ошибками и недоговорками - очень обидно.

Man'ы и Doc'и не выдерживают сравнения с помощью в Borland C.

Опубликовано

Про потоки (я так понимаю "нити" - это вы имели ввиду thread) есть полно информации в интернете! Неужели тяжело пойти на какой-нибудь поисковик и ввести posix threads, linux threads или что-нибудь в этом роде?

Опубликовано

Ну, LDP действительно довольно старый документ, про нити там действительно ничего нет. Но! Хотя бы в info libc есть специальный раздел `POSIX Threads',

равно как и man pthread_create...

Что же касается ошибок в документации, то они, разумеется, бывают, но вообще-то подобные заявления положено подкреплять примерами...

Опубликовано

Пока вы тут наезды на меня клепали я всё что надо нашёл и что хотел написал.

Люди, если не знаете что ответить, задавшему вопрос, лучше молчите и не флеймите понапрасну.

  • 2 месяца спустя...

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...