Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
zionlook

Лабораторные

30.10.2013, 13:25. Показов 2172. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят, нужна помощь подруге по лабораторным работам. Может кто нибудь сможет помочь, буду очень признателен.
Буду признателен даже за идеи как это делается.

Выполнение работы заключается в написании и отладке программы по одному из вариантов. Ввод текста программы и его редактирование производится с помощью любого редактора UNIX (vi, ed и др.). Компиляция программы осуществляется с помощью следующего вызова:
Code
1
$ cc имя_файла.с
На выходе получается исполняемый файл "a.out" или список сообщений об ошибках. Расширение указывать обязательно. Если запустить компилятор с опицией -o, можно указать произвольное имя исполняемого файла:
Code
1
$ cc -o имя_исполняемого_файла имя_файла.c
Работа №1
Написать программу, разбивающую текстовый файл на страницы по N строк, то есть добавляющую в файл после каждых N строк символ перевода страницы

Работа № 2
Процесс 1 открывает файл и после этого порождает потомка 2. Процесс 2 начинает запись в файл после получения сигнала SIG1 от процесса 1 и прекращает ее после получения от процесса 1 сигнала SIG2, который посылается через N секунд после SIG1. Затем процесс 1 читает данные из файла и выводит их на экран.
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.10.2013, 13:25
Ответы с готовыми решениями:

Лабораторные задания
чуваки помогите плииз, препод заставил сделать задания на зачет, а особых навыков у меня нет) помогите кто чем может =) : 1. Разработать...

Лабораторные
Здравствуйте. Мне нужна ваша помощь У меня в первой лабораторной такое задание: В массиве из 15 действительных элементов поменять...

Лабораторные на С
Прошу вас помогите. У меня 10 л.р. и из них я смогла сделать только 4 штуки! прошу вас помогите!знаю позор мне и вы можете обругать...

2
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
03.11.2013, 01:33
2. Хоть в задаче и написано про двух потомков, но про "Процесс 3" ничего нет.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <signal.h>
#include <string.h>
 
int out_file;
char *string_to_write = "Hello world! ";
char *new_line = "\n";
 
void wait_for_signal(int signal)
{
    sigset_t signal_to_wait;
    sigemptyset(&signal_to_wait);
    sigaddset(&signal_to_wait, signal);
    sigwaitinfo(&signal_to_wait, NULL);
}
 
void usr2_handler(int signal)
{
    fsync(out_file);
    _exit(0);
}
 
void write_data_to_file()
{
    int line_num;
    while(1)
    {
        for(line_num = 0;line_num < 10; ++line_num)
            write(out_file, string_to_write, strlen(string_to_write));
        write(out_file, new_line, strlen(new_line));
    }
}
 
void read_from_file()
{
    int read_count;
    char buffer[1024];
 
    lseek(out_file, SEEK_SET, 0);
    do
    {
        read_count = read(out_file, buffer, 1024);
        write(STDOUT_FILENO, buffer, read_count);
    }while(read_count == 1024);
    close(out_file);
}
 
void set_sigusr2_handler()
{
    struct sigaction sa;
    memset (&sa, 0, sizeof(sa));
    sigemptyset(&sa.sa_mask);
    sa.sa_flags = 0;
    sa.sa_handler = usr2_handler;
    sigaction(SIGUSR2, &sa, NULL);
}
 
void set_process_signal_mask()
{
    sigset_t signals_to_block;
 
    sigemptyset(&signals_to_block);
    sigaddset(&signals_to_block, SIGUSR1);
    sigaddset(&signals_to_block, SIGCHLD);
    sigprocmask(SIG_SETMASK, &signals_to_block, NULL);
}
 
int main(int argc, char **argv)
{
    pid_t child_pid;
 
    set_process_signal_mask();
    set_sigusr2_handler();
 
    out_file = open(argv[1], O_CREAT | O_TRUNC | O_RDWR, S_IRUSR | S_IWUSR);
    if(out_file == -1) return -1;
 
    child_pid = fork();
    if(child_pid == 0)
    {
        // child
        wait_for_signal(SIGUSR1);
        write_data_to_file();
    }
    else
    {
        // Parent process
        kill(child_pid, SIGUSR1);
        sleep(1);
        kill(child_pid, SIGUSR2);
        wait_for_signal(SIGCHLD);
        read_from_file();
    }
    return EXIT_SUCCESS;
}
0
Alex Zaharov
12.11.2013, 01:29
Ну привет, учусь в твой группе, юзай ритчи там есть почти все решения
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.11.2013, 01:29
Помогаю со студенческими работами здесь

Лабораторные.
Очень нужна помощь помощь.Иначе могут отчислить.Пожалуйста кто чем может))

Лабораторные работы по C++
могли бы сделать? {Deleted} задание 1 и 2 вариант 9 {Deleted} задание 1 и 2 вариант 9 Нарушение п. 5.16 5.18 и 5.19 Правил! ...

Лабораторные работы
Всем доброго времени суток. Скажите пожалуйста, есть ли у кого-то готовое решение для таких задач ? 1)Найти сумму 1^2+ 2^2+ 3^2+... +...

Лабораторные по СПО
Если есть возможность помочь мне, в написании данных программ, пожалуйста прошу вашей помощи !!! ...

Лабораторные работы
Добрый день !Делаю лабораторные работы помогите разобраться с ними,что не так.Вот код первой работы: #include &lt;stdio.h&gt; #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
1С: Программный отбор элементов справочника Номенклатура по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника Сотрудники по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru