Difference between revisions of "LU-LSP-b13:L05"
(New page: ===Praktiskais darbs #5=== Realizēt programmu, kas beidz darbību, notiekot taimera signālam. Izmantojamās funkcijas: * setjmp * longjmp * sigaction Koda šablons: <pre> #include <s...) |
(→Praktiskais darbs #5) |
||
(8 intermediate revisions by 3 users not shown) | |||
Line 2: | Line 2: | ||
Realizēt programmu, kas beidz darbību, notiekot taimera signālam. |
Realizēt programmu, kas beidz darbību, notiekot taimera signālam. |
||
Darbības beigšanu realizēt caur <code>longjmp</code> uz <code>main()</code> funkciju, no kuras tad notiek <code>return 0;</code>. |
|||
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 14: | 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 22: | 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 36: | 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ē.