Nguyễn Văn Anh Huy
14520378
ANTN2014
C110, ngày 1 tháng 4 năm 2015
Báo cáo LAB 3
Bài 1:
Bài 2:
#include<stdio.h>
#include<signal.h>
int superloop = 1;
void on_Sigint()
{
printf("SIGINT signal\n");
superloop = 0;
}
void on_Sigterm()
{
printf("SIGTERM signal");
superloop=0;
}
void on_Sighup()
{
printf("SIGHUP signal");
superloop=0;
}
int main()
{
int superloop = 1;
signal(SIGTERM,on_Sigterm);
signal(SIGHUP,on_Sighup);
signal(SIGINT,on_Sigint);
while(superloop){}
}
Bài 3:
Kết quả in ra màn hình: I see 17 coconuts!
Giải thích: biến num_coconuts trong hàm con không làm thay đổi biến
num_coconuts của hàm cha. Hàm con kết thúc mà không in ra màn hình. Hàm cha
đợi hàm con kết thúc rồi in ra màn hình kết quả.
Bài 4:
#include<stdio.h>
#include<signal.h>
#include<stdlib.h>
#include<unistd.h>
#include<sys/types.h>
int loop = 1;
void on_signint(int signo)
{
printf("\nBan da nhan CTRL-C\n");
loop=0;
}
int main()
{
printf("THUC HANH HE DIEU HANH\n");
loop = 1;
pid_t pid;
pid = fork();
if (pid==0)
execl("/usr/bin/gedit", "gedit", NULL);
loop = 1;
signal(SIGINT, on_signint);
while(loop){}
}