zawieszacz.c

/*
 * plik ma na celu prezentację ciekawych zagadnień z programowania w języku C / C++
 * prezentuje metode wylaczania przerwań - przydaje się to gdy na k ótko potrzebujemy
 * działania w mocnym trybie czasu rzeczywistego (jest to rozwiązanie dużo mocniejsze
 * niż priorytet -20, gdzie program nawet o dużo niższym (np. dodatnim) priorytecie
 * ma prawo dorwać się do głosu, tu nie może tego zrobić nawet jądro
 * - wszystkie przerwania poza niemaskowalnymi są zablokowane
 *
 */

#include <sys/io.h> // w tym siedzi funkcja iopl();
#include <stdio.h>

int main (int argv, char *args[]) {

  int a=999999999;

  FILE *plik;
  plik = fopen("tekst.txt","w");

  iopl (3); // musimy przejac wladze nad portami ;-),
            // inaczej mamy blad ochrony pamieci i nasz wspanialy program z komenda "cli"
            // nie bedzie sie uruchamial, ale do tego to potrzeba nam root'a ...

  asm("cli"); // - wylacza przerwania


  while (1) {
    // nistety jezeli chcielibysmy cos czytac lub pisac to przerwania beda wlaczone :(((
    //scanf("%d",&a);
    //printf("%d", a);
    //fprintf(plik, "%d", a);

    // a to taki bezpiecznik, ktory zapewni ze kom sie odiwesi ;-)
    a--;
    if (a == 0) break;
  }
  
  asm("sti"); // - wlacza przerwania
  
  return 0;
}

XHTML generated by highlight (http://www.andre-simon.de/) from zawieszacz.c



Copyright (c) 1999-2015, Robert Paciorek (http://www.opcode.eu.org/), BSD/MIT-type license


Redystrybucja wersji źródłowych i wynikowych, po lub bez dokonywania modyfikacji JEST DOZWOLONA, pod warunkiem zachowania niniejszej informacji o prawach autorskich. Autor NIE ponosi JAKIEJKOLWIEK odpowiedzialności za skutki użytkowania tego dokumentu/programu oraz za wykorzystanie zawartych tu informacji.

This text/program is free document/software. Redistribution and use in source and binary forms, with or without modification, ARE PERMITTED provided save this copyright notice. This document/program is distributed WITHOUT any warranty, use at YOUR own risk.

Valid XHTML 1.1 Dokument ten (URL: http://www.opcode.eu.org/programing/c_cpp/zawieszacz.c) należy do serwisu OpCode. Autorem tej strony jest Robert Paciorek, wszelkie uwagi proszę kierować na adres e-mail serwisu: webmaster@opcode.eu.org.
Data ostatniej modyfikacji artykulu: '2014-01-07 19:27:41 (UTC)' (data ta może być zafałszowana niemerytorycznymi modyfikacjami artykułu).