Difference between revisions of "LU-LSP-b13:L05"

From DiLab
Jump to: navigation, search
(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:




// taalaako kodu nemainiit!
// tālāko kodu nemainīt!


// taimeris uz 3 sekundeem
// taimeris uz 3 sekundeem
alarm(3);
alarm(3);


// bezgaliigs cikls
// bezgalīgs cikls
while (1);
while (1);


// atgriezh kaut kaadu nenulles kodu, lai kompilators nesuudzeetos
// 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
Risinājumus nosūtīt uz kursa asistenta e-pastu. Iesniedzamais fails jānosauc šādi: LSP_PD5_vards_uzvards.c. Tas nav jāarhivē.
Iesniedzamais fails jānosauc šādi: LSP_PD5_vards_uzvards.c. Tas nav jāarhivē.

Latest revision as of 13: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:

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ē.