История изменений
Исправление metawishmaster, (текущая версия) :
сорри, до утра разбирался со всякой фигней
можете пояснить эти конструкции?
ближе к тому, что сказал XMs :)
в [1] читаю из файла (f_in) по символу и вывожу в поток стандартного вывода (1), а затем, когда символ не прочитался (или конец файла, или какая-то ошибка) посылаю сигнал SIGUSR1 родителю, при обработке которого тот закрывает файл и завершается.
в [2] родитель сначала привязыват сигнал SIGUSR1 в функции, в которой он закроет f_in и выйдет из программы, а затем читает из потока стандартного ввода (0) символ.
если символ - перевод строки или мы не прочитали (или ошибка), то вываливаемся из цикла
если все ок и мы еще не превылиси лимит символов (который задали вторым аргументом программе), то записываем символ в файл. и так пока read говорит, что у нас получилось прочитать.
затем переводим «файловый указатель» на начало файла f_in, чтобы потомок при чтетии не уткнулся в конец файла и посылаем сигнал потомку, чтобы он прочитал файл f_in.
Исправление metawishmaster, :
сорри, до утра разбирался со всякой фигней
можете пояснить эти конструкции?
ближе к тому, что сказал XMs :)
в [1] читаю из файла (f_in) по символу и вывожу в поток стандартного вывода (1), а затем, когда символ не прочитался (или конец файла, или какая-то ошибка) посылаю сигнал SIGUSR1 родителю, при обработке которого тот закрывает файл и завершается.
в [2] родитель сначала привязыват сигнал SIGUSR1 в функции, в которой он закроет f_in и выйдет из программы, а затем читает из потока стандартного ввода (0) символ.
если символ - перевод строки или мы не прочитал (или ошибка), то вываливаемся из цикла
если все ок и мы еще не превылиси лимит символов (который задали вторым аргументом программе), то записываем символ в файл. и так пока read говорит, что у нас получилось прочитать.
затем переводим «файловый указатель» на начало файла f_in, чтобы потомок при чтетии не уткнулся в конец файла и посылаем сигнал потомку, чтобы он прочитал файл f_in.
Исправление metawishmaster, :
сорри, до утра разбирался со всякой фигней
можете пояснить эти конструкции?
ближе к тому, что сказал XMs :)
в [1] читаю из файла (f_in) по символу и вывожу в поток стандартного вывода (1), а затем, когда символ не прочитался (или конец файла, или какая-то ошибка) посылаю сигнал SIGUSR1 родителю, при обработке которого тот закрывает файл и завершается.
в [2] родитель сначала привязыват сигнал SIGUSR1 в функции, в которой он закроет f_in и выйдет из программы, а затем читает из потока стандартного ввода символ.
если символ - перевод строки или мы не прочитал (или ошибка), то вываливаемся из цикла
если все ок и мы еще не превылиси лимит символов (который задали вторым аргументом программе), то записываем символ в файл. и так пока read говорит, что у нас получилось прочитать.
затем переводим «файловый указатель» на начало файла f_in, чтобы потомок при чтетии не уткнулся в конец файла и посылаем сигнал потомку, чтобы он прочитал файл f_in.
Исходная версия metawishmaster, :
сорри, до утра разбирался со всякой фигней
можете пояснить эти конструкции?
ближе к тому, что зказал XMs :)
в [1] читаю из файла (f_in) по символу и вывожу в поток стандартного вывода (1), а затем, когда символ не прочитался (или конец файла, или какая-то ошибка) посылаю сигнал SIGUSR1 родителю, при обработке которого тот закрывает файл и завершается.
в [2] родитель сначала привязыват сигнал SIGUSR1 в функции, в которой он закроет f_in и выйдет из программы, а затем читает из потока стандартного ввода символ.
если символ - перевод строки или мы не прочитал (или ошибка), то вываливаемся из цикла
если все ок и мы еще не превылиси лимит символов (который задали вторым аргументом программе), то записываем символ в файл. и так пока read говорит, что у нас получилось прочитать.
затем переводим «файловый указатель» на начало файла f_in, чтобы потомок при чтетии не уткнулся в конец файла и посылаем сигнал потомку, чтобы он прочитал файл f_in.