Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Лабораторная работа по "Программированию"

Автор:   •  Март 23, 2019  •  Лабораторная работа  •  1,610 Слов (7 Страниц)  •  589 Просмотры

Страница 1 из 7

Цель работы : Написать две (или более) программы, которые, работая параллельно зациклено, обмениваются информацией согласно варианту.

Вариант 7, 17 Первый процесс пишет в файл строку вида «pid - текущее время», каждый

раз открывая и закрывая файл, а второй процесс эту строку читает и выводит, дополняя своим pid.

1)

#include

#include

#include

#include

#include

#include

#include

#include

void GetPidOfSubstr(char* str, char* pid)

{

        int i = 0, j = 0;

        int checkBox = 1;

        while (str[i] != '\0')

        {

                if (str[i] >= 48 && str[i] <= 57)

                {

                        checkBox = 0;

                        pid[j] = str[i];

                        j++;        

                }

                else

                {

                        if(checkBox == 0)

                        {

                                pid[j] = '\0';

                                break;

                        }

                }

                i++;

        }

}

void GetTimeOfSubstr(char* str, char* time)

{

        int i = strlen(str), j = 0;

        char tmp;

        while (str[i] != ' ')

        {

                i--;

        }

        i--;

        while (str[i] != ' ')

        {

                time[j] = str[i];

                j++;

                i--;

        }

        time[j] = '\0';

}

int main()

{

        sem_t *semaphore1 = sem_open("Sem1", O_CREAT, 0777, 0);

        sem_t *semaphore2 = sem_open("Sem2", O_CREAT, 0777, 0);

        int size = 131072;

        char data[size];

        char lexeme[256];

        char pid[256];

        char time[256];

        char str[256];

        int fd, k;

        read(0, data, size);

        int i = 0, j = 0;

        while (data[i] != '\n')

        {

                i++;

        }

        i++;

        sem_wait(semaphore1);

        while (data[i] != '\0')

        {        

                if (data[i] != '\n')

                {

                        lexeme[j] = data[i];

                        j++;

                }

                else

...

Скачать:   txt (4 Kb)   pdf (85.7 Kb)   docx (8.9 Kb)  
Продолжить читать еще 6 страниц(ы) »
Доступно только на Essays.club