Assignment 3
Assignment 3
1: #include<stdio.h>
#include <signal.h>
voidsigproc(void);
voidquitproc(void);
main()
{ signal(SIGINT, sigproc);
signal(SIGQUIT, quitproc);
voidsigproc()
{ signal(SIGINT, sigproc); /* */
void quitproc()
exit(0);
}
2:Write a program that communicates between child and parent processes
using kill () and signal ().
#include<stdio.h>
#include<sys/types.h>
#include<signal.h>
signal(SIGQUIT, sigquit);
else /* parent */
#include <signal.h>
voidsigint();
voidsigquit();
main()
{ intpid;
perror("fork");
exit(1);
if (pid == 0)
{ /* child */
signal(SIGINT,sigint);
kill(pid,SIGINT);
kill(pid,SIGQUIT);
sleep(3);
voidsighup()
voidsigint()
voidsigquit()
exit(0);
Ans:
static FILE *psFile; /* Must be global. */
fclose(psFile);
remove("tmp.txt");
exit(EXIT_FAILURE);
}
int main(void) {
void (*pfRet)(int);