Добавил:
Upload
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
#include<stdio.h>
#include<conio.h>
#include<windows.h>
/*------------------------------------------------*/
void printrusb(char string[100],int a)
{ char buf[100]; /* буфер обмена для вывода русских букв в консоль */
CharToOem(string, buf);/* преобразование букв */
printf(buf);//Выводим русские буквы
if (a == 1) {puts("\n");}//Выводим перевод строки
};
int st_stop(char string[100],int a)
{
FILE *f;
int d;
f=fopen(string,"rt"); // открываем файл для считывания
if (f!=NULL)
{
fscanf(f,"%d",&d);// считываем содержимое файла
if (d==a)
{
fclose(f); // закрываем файл
f=fopen(string,"wt"); // открываем файл для записи
fprintf(f,"%d",a+1);// записываем в файл 1
fclose(f); // закрываем файл
printf("%s = %d\n",string,a+1);
return 1;
}
else
{
if (a==0)
{
fclose(f); // закрываем файл
f=fopen(string,"wt"); // открываем файл для записи
fprintf(f,"%d",a);// записываем в файл 1
fclose(f); // закрываем файл
printf("%s = %d\n",string,0);
}
return 0;
}
}
else printrusb("Файла нет",1);
return 0;
}
void schit(char string[100])
{
FILE *f;
char a[50];
int d;
f=fopen(string,"rt"); // открываем файл для записи
if (f!=NULL)
{
fscanf(f,"%s",&a);// считываем содержимое файла
fclose(f); // закрываем файл
printrusb("В файле ",0);printf("%s",string);printrusb(" записана строка: ",0);printf("%s\n",a);
}
else printrusb("Файла нет",1);
}
int main()// программа производитель
{
int b;
char a='0';
char chars[50]="";
while (a!='a')
{
getch();
b=st_stop("semaphore.txt",2);
getch();
if(b==1)
{
schit("res.txt");
getch();
st_stop("semaphore.txt",0);
}
else printrusb("Очередность у другого процесса",1);
printrusb("Для завершения нажмите на букву а, для продолжения на любую другую клавишу",1);
a=getch();
}
return 0;
}