0 / 0 / 1
Регистрация: 12.04.2018
Сообщений: 3

Решение задачи "писатели-читатели"

12.04.2018, 22:15. Показов 4200. Ответов 2

Студворк — интернет-сервис помощи студентам
Надо написать программу на языке си под линукс, проблема писателей-читателей, все её знают(если нет лучше загуглите быстрей поймёте), написать саму прогу изи, но суть в другом, надо сделать это через FIFO, ну или подобие. Объясняю, в одном терминале запускаю процесс писатель, в другом процесс читатель(несколько терминалов с читателями). В терминале писателя мы вводим текст с клавиатуры в файл, после ввода, читатели должны начать его читать(вывести на экран текст), принцип MUTEX обязателен, пока они читают(необязательно все), мы не можем ничего писать, и если мы пишем, они не могут читать. Нужна помощь, помогите пожалуйста, уже всё испробовал...
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.04.2018, 22:15
Ответы с готовыми решениями:

Читатели-писатели
Здравствуйте, дорогие форумчане! Столкнулся с проблемой читателей-писателей: необходимо написать лаб.раб, демонстрирующую решение этой...

Читатели - писатели
Всем доброй ночи! Готовлюсь сдавать преподавателю тему читатели-писатели, которую нам дали на самостоятельное изучение. Нужна ваша...

Классическая задача Дж. Рихтера "Читатели-писатели" с приоритетом писателей
Здравствуйте, получил недавно задачу реализовать код Дж. Рихтера "Писатели-читатели", только наоборот. То-есть приоритет у...

2
Заблокирован
12.04.2018, 22:52
Цитата Сообщение от CgoAst_ Посмотреть сообщение
всё испробовал
Код проб можно увидеть?
Цитата Сообщение от CgoAst_ Посмотреть сообщение
надо сделать это через FIFO, ну или подобие
Так фифо, или подобие? Если фифо, то с несколькими читателями облом сразу.
0
0 / 0 / 1
Регистрация: 12.04.2018
Сообщений: 3
12.04.2018, 22:59  [ТС]
Лучший ответ Сообщение было отмечено CgoAst_ как решение

Решение

Подобие фифо, не обязательно его использовать

Добавлено через 1 минуту
Writer.c

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
#include<stdio.h>
#include<fcntl.h>
#include<string.h>
 
 
#define BUFFER 200
 
int main(int argc, char *argv[]) {
 
    char input[BUFFER]={0};
    int out_fd=open("clientToServer.fifo", O_WRONLY);
 
    if (out_fd==-1) {
        perror("open error");
    }
 
    while (1) {
 
        printf("Напишите текст (напишите Quit для выхода)\n");
        fgets(input, BUFFER, stdin);
        if (input[strlen(input)-1]=='\n') {
            input[strlen(input)-1]='\0';
        }
 
        if (strcmp(input, "Quit")==0) {
            printf("Пока!");
            break;
        }
 
        if (write(out_fd, input, strlen(input))==-1) {
            perror("write error");
        }
    }
 
    return 1;
}

reader. c

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
#include<stdio.h>
#include <fcntl.h>
#include <stdlib.h>
 
 
#define INGOING "clientToServer.fifo"
 
#define BUFFER 200
 
int main(int argc, char *argv[]) {
 
    char in[BUFFER];
 
    mkfifo(INGOING, 0666);
 
    printf("Привет!.\n");
 
    int in_fd=open(INGOING, O_RDONLY);
 
    if (in_fd==-1) {
        perror("open error");
        exit(-1);
    }
 
    while (read(in_fd, in, BUFFER)>0) {
        printf("Я прочитал этот текст!: %s\n", in);
    }
 
    return 2;
}
Добавлено через 1 минуту
В этом коде проблема в том что нет ни потоков, ни симафоров, и пока не могу понять как сделать принцип MUTEX здесь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.04.2018, 22:59
Помогаю со студенческими работами здесь

Семафоры: решение задачи "Читатели/писатели"
Здравствуйте Задача: разработать комплекс программ, который демонстрирует решения по-дачи «читатели-писатели». В комплекс должны входить:...

Задача Читатели-Писатели
Помогите , пожалуйста!!!!!! Задача: разработать комплекс программ, который демонстрирует решение за- дачи «читатели-писатели». В...

Читатели - Писатели через терминалы
Есть условие: написать код для решения проблемы читатели писатели, но не самым обычным способом, т.е. есть один файл - писатель, другой -...

Синхронизация нитей. Задача читатели-писатели
Задача читатели - писатели. Есть несколько нитей, только читают эти данные (читатели), и несколько нитей, только записывают данные или...

"Читатели-Писатели"
Необходимо решение данной проблемы. Приоритет у читателей. Способ синхронизации - Event. Вот к чему дошел: #include...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru