File Transfer Using Pipes: Source Code: Server Side
File Transfer Using Pipes: Source Code: Server Side
fdmjb=open("mjb",O_RDONLY); fp=open("emp.txt","O_RDONLY");
fdmaury= open("maury",O_RDONLY);
printf("fdmjb %d fdmaury if(fp==NULL)
%d\n",fdmjb,fdmaury); {
fp=open("emp.txt","O_WRONLY");
setuid(uid); if(fp==NULL)
printf("after setuid(%d):uid d euid {
%d\n",uid,getuid(),geteuid()); printf("cannot open file");
exit(0);
fdmjb = open("mjb",O_RDONLY); }
fdmaury = open("maury",O_RDONLY); }
printf("fdmjb %d fdmaury
%d\n",fdmjb,fdmaury); recsize=sizeof(e);
setuid(euid); while(1)
printf("after setuid(%d):uid %d euid {
%d\n",euid,getuid(),getuid()); printf("\n1.Add Record");
printf("\n2.List Record");
printf("\n3.Modify Record"); close(fp);
printf("n 0.Exit"); exit(0);
printf("\nEnter Choice"); }
scanf("%d",&ch); }
}
switch(ch)
{ [root@localhost filemgmt]$cc prmgt.c
case 1:
ano='y'; [root@localhost filemgmt]$./a.out
write(fp,&e,1);
break; Signals set during process states and
} transitions:
}
Source Code:
printf("\nModify ano record");
scanf("%c",&ano); Signals
}
break; include <stdio.h>
#include <unistd.h>
case 0: #include <fcntl.h>
while(1)
void ouch(int sig) {
{ printf("Hello World!\n");
printf("OUCH! - I got signal %d\n", sleep(1);
sig); }
(void) signal(SIGINT, SIG_DFL); }
}
Output
void abc(int sig)
{ [root@localhost signal]$ cc sig.c
printf("you have pressed ctrl key and the [root@localhost signal]$ ./a.out
signal no is %d",sig); you have pressed ctrl key and the signal no is 3
(void) signal(SIGQUIT,SIG_DFL); Enter the value for i and j10 20
}
Result is 2Hello World!
void illegal(int sig) Hello World!
{ Hello World!
printf("\n you have done illegal Hello World!
instruction"); Hello World!
printf("\n The signal number is Hello World!
%d",sig); Hello World!
exit(0); Hello World!
} Hello World!
Hello World!
void call(int sig) Hello World!
{ OUCH! - I got signal 2
printf("\n Illegal use of system call"); Hello World!
printf("\n The signal number is Hello World!
%d",sig); Hello World!
exit(0); Hello World!
} Hello World!
Hello World!
int main() Quit
{ [root@localhost signal]$
int i,j;
int fd; Alarm:
(void) signal(SIGINT, ouch);
(void) signal(SIGQUIT, abc); #include <signal.h>
(void) signal(SIGILL, illegal); #include <stdio.h>
(void) signal(SIGHUP,SIG_IGN); #include <unistd.h>
(void) signal(SIGSYS,call);
static int alarm_fired = 0;
printf("\nEnter the value for i and j");
scanf("%d %d",&i,&j); void ding(int sig)
{
j=j/i; alarm_fired = 1;
printf("\nResult is %d",j); }
Output: Output:
#include <stdio.h>
#include <signal.h>
void abc();
void def();
int pid,i;
main()
{
pid=fork();
if (pid==0)
{
signal(SIGUSR2,abc);
sleep(1);
printf("Hello boys\n");
kill(getppid(),SIGUSR1);
sleep(5);
}
else
{