Difference between revisions of "LU-LSP-b13:L05"
(→Praktiskais darbs #5) |
|||
(7 intermediate revisions by 2 users not shown) | |||
Line 6: | Line 6: | ||
Izmantojamās funkcijas: |
Izmantojamās funkcijas: |
||
* setjmp |
* setjmp() |
||
* longjmp |
* longjmp() |
||
* sigaction() [http://www.gnu.org/software/libc/manual/html_node/Sigaction-Function-Example.html (piemērs)] |
|||
* sigaction |
|||
Par signāliem kārtīgi mācīsimies vēlāk! Neliels ieskats, kas var noderēt: [https://www.gnu.org/software/libc/manual/html_node/Handler-Returns.html#Handler-Returns] |
|||
Uzmanību, konkrētais praktiskais darbs nestrādās ar striktu c90/c99 standartu, jo tam nepieciešami POSIX signāli, kas standartā nav iekļauti. Šajā PD atļauts kompilēt ar jaunāko standartu, vai korektāk - izmantot kompilatora slēdzi "-D_POSIX_C_SOURCE" |
|||
Koda šablons: |
Koda šablons: |
||
Line 16: | Line 20: | ||
#include <signal.h> |
#include <signal.h> |
||
#include <stdio.h> |
#include <stdio.h> |
||
#include <unistd.h> |
|||
// TODO: jūsu kods te! |
// TODO: jūsu kods te! |
||
Line 24: | Line 29: | ||
// |
// tālāko kodu nemainīt! |
||
// taimeris uz 3 sekundeem |
// taimeris uz 3 sekundeem |
||
alarm(3); |
alarm(3); |
||
// |
// bezgalīgs cikls |
||
while (1); |
while (1); |
||
// |
// atgriež kaut kādu nenulles kodu, lai kompilators nesūdzētos |
||
return -1; |
return -1; |
||
} |
} |
||
Line 38: | Line 43: | ||
Risinājumus iesūtīt estudijas.lu.lv, sadaļā PD5 |
|||
Iesniedzamais fails jānosauc šādi: LSP_PD5_vards_uzvards.c. Tas nav jāarhivē. |
Latest revision as of 12:23, 3 April 2024
Praktiskais darbs #5
Realizēt programmu, kas beidz darbību, notiekot taimera signālam.
Darbības beigšanu realizēt caur longjmp
uz main()
funkciju, no kuras tad notiek return 0;
.
Izmantojamās funkcijas:
- setjmp()
- longjmp()
- sigaction() (piemērs)
Par signāliem kārtīgi mācīsimies vēlāk! Neliels ieskats, kas var noderēt: [1]
Uzmanību, konkrētais praktiskais darbs nestrādās ar striktu c90/c99 standartu, jo tam nepieciešami POSIX signāli, kas standartā nav iekļauti. Šajā PD atļauts kompilēt ar jaunāko standartu, vai korektāk - izmantot kompilatora slēdzi "-D_POSIX_C_SOURCE"
Koda šablons:
#include <setjmp.h> #include <signal.h> #include <stdio.h> #include <unistd.h> // TODO: jūsu kods te! int main(void) { // TODO: jūsu kods te! // tālāko kodu nemainīt! // taimeris uz 3 sekundeem alarm(3); // bezgalīgs cikls while (1); // atgriež kaut kādu nenulles kodu, lai kompilators nesūdzētos return -1; }
Risinājumus iesūtīt estudijas.lu.lv, sadaļā PD5
Iesniedzamais fails jānosauc šādi: LSP_PD5_vards_uzvards.c. Tas nav jāarhivē.