Difference between revisions of "LU-LSP-b12:MD4"

From DiLab
Jump to: navigation, search
Line 6: Line 6:
===Uzdevums===
===Uzdevums===
# Realizēt procedūru myExit(int ret_code), kas no jebkuras vietas kodā iziet no programmas ar kodu kurš padots kā parametrs (darbojas līdzīgi exit()). Darba izpildei nav atļauts izmantot exit(). Tā vietā jāizmanto setjmp() un longjmp(). Galvenajā funkcijā main() atļauts ievietot savu makro izsaukumu:
# Realizēt procedūru myExit(int ret_code), kas no jebkuras vietas kodā iziet no programmas ar kodu kurš padots kā parametrs (darbojas līdzīgi exit()). Darba izpildei nav atļauts izmantot exit(). Tā vietā jāizmanto setjmp() un longjmp(). Galvenajā funkcijā main() atļauts ievietot savu makro izsaukumu:
# Reaģēt uz signālu SIG_HUP saskaņā ar sekojošu pseido-kodu:
# Reaģēt uz signālu SIGHUP (''SIGnal Hanged UP'') saskaņā ar sekojošu pseido-kodu:
On SIG_HUP
On SIG_HUP
print "Bye bye!\n";
print "Bye bye!\n";
Line 21: Line 21:
Uzdevums tiks vērtēts sekojoši:
Uzdevums tiks vērtēts sekojoši:
# 70% - Korekta myExit() funkcionalitāte
# 70% - Korekta myExit() funkcionalitāte
# 30% - Reaģēšana uz SIG_HUP signālu.
# 30% - Reaģēšana uz SIGHUP signālu.


===Piemēri===
===Piemēri===

Revision as of 17:49, 23 October 2012

Mērķi

  • Apgūt setjmp() un longjmp() lietojumu un asinhronu koda vadību.

Uzdevums

  1. Realizēt procedūru myExit(int ret_code), kas no jebkuras vietas kodā iziet no programmas ar kodu kurš padots kā parametrs (darbojas līdzīgi exit()). Darba izpildei nav atļauts izmantot exit(). Tā vietā jāizmanto setjmp() un longjmp(). Galvenajā funkcijā main() atļauts ievietot savu makro izsaukumu:
  2. Reaģēt uz signālu SIGHUP (SIGnal Hanged UP) saskaņā ar sekojošu pseido-kodu:
On SIG_HUP
  print "Bye bye!\n";
  exit(1);

Jāiesniedz

  • Jāiesniedz C programmas pirmkods.
  • Koda fails sūtāms pa epastu piekabē, ar sekojošu "Subject:" LSP MD4 vards uzvards


Vērtējums

Uzdevums tiks vērtēts sekojoši:

  1. 70% - Korekta myExit() funkcionalitāte
  2. 30% - Reaģēšana uz SIGHUP signālu.

Piemēri

int main()
{
  MY_INIT();
  ...
}
...
void a()
{
  ...
  myExit(7);
  ...
}


Derīga informācija

J&A (jautājumi un atbildes)

J: Uzdevums pārāk grūts, vai var pagarināt termiņu?

A: Noteiktais termiņš paliek spēkā. Iesaku risināt savlaicīgi, lai pietiek laika neparedzētu problēmu risināšanai.


Uz LSP kursa sākuma lapu.