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

la3 / proizv / main

.c
Скачиваний:
15
Добавлен:
12.03.2015
Размер:
2.31 Кб
Скачать
#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==2) 
            {
                  fclose(f); // закрываем файл	
	            f=fopen(string,"wt"); // открываем файл для записи
                fprintf(f,"%d",a);// записываем в файл 1
    			fclose(f); // закрываем файл	
    			printf("%s = %d\n",string,a);		    
                      } 
        return 0;
        }
	}
	else printrusb("Файла нет",1);
	return 0;
}
 
void zapis(char string[100],char a[50])
{
    FILE *f;
    int d;
    f=fopen(string,"wt"); // открываем файл для записи
	if (f!=NULL) 
	{
                fprintf(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",0);
		getch();
		if(b==1)
		{
	    	printrusb("Введите строку: ",0);
	    	scanf("%s",&chars);
    		zapis("res.txt",chars);
	    	getch();
    		st_stop("semaphore.txt",2);	
       }
       else printrusb("Очередность у другого процесса",1);
	printrusb("Для завершения нажмите на букву а, для продолжения на любую другую клавишу",1);
	a=getch();
	}
	return 0;

}


	

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