Для чего?
Предполагается, что пользователь работает с каким-то онлайн-ресурсом и только с ним, вдруг случается неслыханное событие — пропадает сеть или ресурс оказывается вне доступа.
Чтобы не просиживать у компьютера зря, пользователь делает погромче звук и запускает программу, которая ждёт появления ресурса в сети, а сам отправляется считать воробьев на балкон.

Возможности
Описание
Выдает звуковые сигналы: на одной частоте если ресурс доступен, на другой, — если ресурс не доступен; после изменения состояния уходит в фон и осуществляет проверку доступности ресурса.
Код
P.S. Конечно, beep лучше заменить чем-нибудь.
    
    Предполагается, что пользователь работает с каким-то онлайн-ресурсом и только с ним, вдруг случается неслыханное событие — пропадает сеть или ресурс оказывается вне доступа.
Чтобы не просиживать у компьютера зря, пользователь делает погромче звук и запускает программу, которая ждёт появления ресурса в сети, а сам отправляется считать воробьев на балкон.

Возможности
- Может находится в двух состояниях.
 - Работает в фоне.
 - Осуществляет мониторинг состояния ресурса.
 - Единожды оповещает с помощью звука об изменении состояния.
 
Описание
Выдает звуковые сигналы: на одной частоте если ресурс доступен, на другой, — если ресурс не доступен; после изменения состояния уходит в фон и осуществляет проверку доступности ресурса.
Код
Код Си.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int test(char * ip) {
		if(system(ip)==0) {	
	
		return 1;
			
		}
		
		else 
		
		{
	
		return 0;
		}
		
	}	
void wait(int b, char * ip) {
		while (1) {
		
		sleep (5);
		test(ip);
		
		if (b!=test(ip)) {
		b=test(ip);
		
		if (test(ip) == 1) {
	system("beep -f 2200 -l 3000");
		} 
		else 
		{
	system("beep -f 1200 -l 2000");
		
				}
	
			}
		}
	}
void start (char * ip) {
	
	if (test(ip)==0)
	system("beep -f 1200 -l 2000");
	
	}
 int main (int argc, char *argv[]) {
             
	     if (argc < 2) {
             printf("Введите адрес  вторым параметром ");
             return 0;         
             } 
		
	
		char ip[100]="ping -c 1 ";
		sprintf(ip, "%s%s", ip, argv[1]); 
	    
	     int b = 0;
	     start (ip);
	     wait (b, ip);
		
}
P.S. Конечно, beep лучше заменить чем-нибудь.
Поделиться с друзьями
              Комментарии (10)

KlimovDm
17.10.2016 17:16+1>>> или ресурс оказывается вне доступа
Доступ к ресурсу не мониторится ping-ом. Скажем прилег httpd, а сервер пингуется. Или наоборот, все работает, но прикрыто icmp echo.
          
 
kahi4
Зачем тут это вообще? Это, эм, даже на hello world для C с трудом тянет.
dcc0
Ваш пример не о том, вообще…
kahi4
А о чем ваш пример? Конечный автомат с двумя состояниями? Которые, вдобавок, не хранятся, а каждую новую итерацию он опрашивает с нуля и принимает решение? Нет ни переходов между состояниями, ничего, только вечный цикл, внутри которого условие. Это как-то не сильно тянет на конечный автомат. Мой пример в небольшие доработки тоже так сможет.
dcc0
Покажите, если будет время…
Условие — оповещение один раз при изменении состояния.
dcc0
С учётом Вашего примера, алгоритм Вы не поняли…