Difference between revisions of "LU-LKP-B10:MD5"
m |
|||
Line 3: | Line 3: | ||
===Mērķi=== |
===Mērķi=== |
||
* Apgūt setjmp() un longjmp() lietojumu un asinhronu koda vadību. |
|||
* |
|||
===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: |
|||
X |
|||
# Bonus uzdevums. Reaģēt uz signālu SIG_HUP saskaņā ar sekojosu pseido-kodu: |
|||
On SIG_HUP |
|||
print "Bye bye!\n"; |
|||
exit(1); |
|||
===Jāiesniedz=== |
===Jāiesniedz=== |
||
* Jāiesniedz C programmas pirmkods un Makefile. |
* Jāiesniedz C programmas pirmkods un Makefile. |
||
* Visi iesniedzamie faili jāsapako arhīvā |
* Visi iesniedzamie faili jāsapako arhīvā LKP_MD5_vards_uzvards.tgz |
||
* Arhīva fails sūtāms pa epastu piekabē, ar sekojošu "Subject:" LKP |
* Arhīva fails sūtāms pa epastu piekabē, ar sekojošu "Subject:" LKP MD5 vards uzvards |
||
===Vērtējums=== |
===Vērtējums=== |
||
Uzdevums tiks vērtēts sekojoši: |
Uzdevums tiks vērtēts sekojoši: |
||
# 100% - Korekta programmas funkcionalitāte |
|||
# 80% - Korektu ievaddatu apstrāde un pareiza rezultātu izdruka. |
|||
# 10% - Bonusa risinajums atbildot uz SIG_HUP signālu. |
|||
# 20% - Nekorektu ievaddatu atpazīšana un kļūdas paziņojuma izdruka. |
|||
===Piemēri=== |
===Piemēri=== |
||
main() |
|||
{ |
|||
MY_INIT(); |
|||
... |
|||
} |
|||
... |
|||
void a() |
|||
{ |
|||
... |
|||
myExit(7); |
|||
... |
|||
} |
|||
===Derīga informācija=== |
===Derīga informācija=== |
||
* [http:// |
* [http://linux.die.net/man/3/setjmp man 3 setjmp] |
||
* [http://linux.die.net/man/3/longjmp man 3 longjmp] |
|||
* Ieteikums: izstrādājiet programmatūru pakāpeniski. Piemēram, vispirms ielasiet un izdrukājiet datus. Tad pievienojiet datu analīzi un reģistrēšanu savās datu struktūrās. Tad pievienojiet datu analīzi lai tos sakārtotu izdrukai. Testējiet vispirms uz pareiziem datiem. tad uz kļūdainiem datiem. |
* Ieteikums: izstrādājiet programmatūru pakāpeniski. Piemēram, vispirms ielasiet un izdrukājiet datus. Tad pievienojiet datu analīzi un reģistrēšanu savās datu struktūrās. Tad pievienojiet datu analīzi lai tos sakārtotu izdrukai. Testējiet vispirms uz pareiziem datiem. tad uz kļūdainiem datiem. |
Revision as of 17:25, 26 October 2010
MD
Mērķi
- Apgūt setjmp() un longjmp() lietojumu un asinhronu koda vadību.
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:
- Bonus uzdevums. Reaģēt uz signālu SIG_HUP saskaņā ar sekojosu pseido-kodu:
On SIG_HUP print "Bye bye!\n"; exit(1);
Jāiesniedz
- Jāiesniedz C programmas pirmkods un Makefile.
- Visi iesniedzamie faili jāsapako arhīvā LKP_MD5_vards_uzvards.tgz
- Arhīva fails sūtāms pa epastu piekabē, ar sekojošu "Subject:" LKP MD5 vards uzvards
Vērtējums
Uzdevums tiks vērtēts sekojoši:
- 100% - Korekta programmas funkcionalitāte
- 10% - Bonusa risinajums atbildot uz SIG_HUP signālu.
Piemēri
main() { MY_INIT(); ... } ... void a() { ... myExit(7); ... }
Derīga informācija
- Ieteikums: izstrādājiet programmatūru pakāpeniski. Piemēram, vispirms ielasiet un izdrukājiet datus. Tad pievienojiet datu analīzi un reģistrēšanu savās datu struktūrās. Tad pievienojiet datu analīzi lai tos sakārtotu izdrukai. Testējiet vispirms uz pareiziem datiem. tad uz kļūdainiem datiem.
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 LKP kursa sākuma lapu.