Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

la3 / potreb / main

.c
Скачиваний:
16
Добавлен:
12.03.2015
Размер:
2.25 Кб
Скачать
#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;

}


	

Соседние файлы в папке potreb