Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
Кафедра БІТ
/
Звіт до лабораторної роботи № 7
ПОВІДОМЛЕННЯ
З дисципліни
“Операційні системи”
Мета: навчиться організовувати обмін даними між процесами з використанням повідомлень.
Завдання
9. Клієнт формує запит, що містить ім'я каталогу. Сервер переглядає каталог і передає клієнтові кількість підкаталогів, що мають в цьому каталозі. Клієнт виводить отриману інформацію на екран.
Текст програми клієнта
#include <iostream.h>
#include <stdio.h>
#include <errno.h>
#include <sys/types.h>
#include <unistd.h>
#include <fcntl.h>
#define NAME "sfifo.cc"
int main()
{
int fd,a;
char buf[30];
mkfifo(NAME, S_IFIFO|S_IRWXU|S_IRWXG|S_IRWXO)
printf("vedit buf:");
scanf("%lf",&buf);
if((fd=open(NAME, O_WRONLY))==-1) {
perror("error");
return 1;
}
write(fd, buf, strlen(buf));
system(/home/shadow8279/parth2.c);
if (a=0)
{
if((fd=open(NAME, O_RDONLY))==-1) {
perror("error to read");
}
read(fd, folCount, sizeof(folCount));
printf("the number of folders in this directory is:");
printf("%5d", folCount);
}
close(fd);
unlink(NAME);
}
Текст програми сервера
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
main(int argc, char *argv[])
{
if((fd=open(NAME, O_RDONLY))==-1) {
perror("error to read");
}
read(fd, buf, sizeof(buf));
struct dirent *mydir;
DIR *fd;
argv[]==buf[];
if((fd = opendir(argv[])) == NULL) {
perror("error opening directory ");
break;
}
while((mydir = readdir(fd)) != NULL)
printf("directory is open");
system(ls);
int folCount = 0;
if(FindFirst(Folder+"\*.*",faAnyFile,SR) == 0)
{
if(SR.Name != "." && SR.Name != "..")
{
folCount++;
}
}
if((fd=open(NAME, O_WRONLY))==-1) {
perror("error to write");
return 1;
}
write(fd, folCount, strlen(folCount));
closedir(fd);
return a=0;
}
Результат виконання програми
/
Скріншот вмісту папки Pictures
/
Висновок
В даній лабораторній роботі я навчився організовувати обмін даними між процесами з використанням повідомлень.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!