Você está na página 1de 6

"#include<stdio.

h>
ude<stdlib.h>
stream>
>

#incl
#include<io
#include<unistd.h
#include<limits.h>
#include<fcntl.h>
using namespace std;
#define BUFFER_SIZE PIPE_BUF
int main(int argc,char *argv[])
{
int pipe_fd,res=0;
char buffer[BUFFER_SIZE+1];
if(argc!=2)
{
cout<<\"usa
ge:./a.out pipe_name\
\";
return -1;
}
cout<<\"\
FD of fifo in read mode:\"<<pipe_fd<<endl;
if((pipe_fd=open(argv[1],O_RDONLY))!=-1)
{
res=read(pipe_fd,buffer,BUFFER_SIZE);
cout<<\"\
data read..\
\";
cout<<buffer;
close(pipe_fd);
}
else
{
perror(\"\
fifo read\");
}
cout<<\"\
process
\"<<getpid()<<\" finished reading\
\"<<endl;
retur
n 0;
}";
char data_4b[]= "#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#i
nclude<string.h>
#include
<unistd.h>
#include<fcntl
.h>
#include<limits.h>
#include<sys/types.h>
#include<sys/stat.h>
using namespace std;
#define BUFFER_SIZE PIPE_BUF
int main(int argc,char *argv[])
{
int pipe_fd,res;
char buffer[BUFFER_SIZE+1];
if(argc!=2)
{
cout<<\"usa
ge:./a.out pipe_name\
\";
return 1;
}
if(access(argv[1],F_OK)==-1)
{
r
es=mkfifo(argv[1],0777);
if(res!=0)
{
perror(\"\
mkfifo error\
\");
ex

it(0);

}
}
cout<<\"Process \"<<getpid()<<\"opening fifo in write mode\"<<en
dl;
pipe_fd=open(argv[1],
O_WRONLY);
cout<<\"FD of
fifo in write mode:\"<<pipe_fd<<endl;
if(pipe_fd!=-1)
{
cout<<\"enter data\
\";
gets(buffer);
res=write(pipe_fd,buffer,BUFFER_SIZE);
if(res==-1)
{
perror(\"write error\
\
");
exit(0);
}
close(pipe_fd);
}
else
perror(\"fifo write\");
cout<<\"\
process \"<<getpid()<<\" finished writing\
\"<<endl;
unlink(argv[1]);
return 0;
}";
char data_5a[]= "#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
in
t main(int argc,char *argv[])
{
int i;
char **ptr;
extern char **environ;
for(ptr=environ; *ptr!=0;ptr++)
printf(\"%s\
\",*ptr);
exit(0);
} ";
char data_5b[]= "#include<stdio.h>
#include<unistd.h>
int main(int argc, char *argv[])
{
if(argc!=3)
{
printf(\"Usage: %s <src_file><dest_file>\
\",argv[0]);
return 0;
}
if(link(argv[1],argv[2])==-1)
{
printf(\"Link Erro
r\
\");
return 1;
}
return 0;
} ";
char data_6[]= "#include<stdlib.h>
#include<stdio.h>
#include<unistd.h>
voi
d display(char *);
int ma
in()
{
pid_t pid;
if((pid=fork())<0)
printf(\"fork error\
\");
else if

(pid==0)
from child\

display(\"output
\");
else
display(\"output from parent\
\");
exit(0);

}
void display(char *str)
{
char *ptr;

int c;
tbuf(stdout,NULL);
r=str;(c=*ptr++)!=0;)
c(c,stdout);
char data_7[]= "#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
main()

se
for(pt
put
}";
int
{

pid_t pid;
if((pid=fork())<0)
printf(\"fork error\
\");

else

if(pid==0)

exit(0);
sleep(2);
system( \"ps -o pid,ppid,state,tty,command\"
exit(0);
}";

);
char data_8[]= "#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
main()

int
{

pid_t pid;
if((pid=fork())<0)
printf(\"fork error\
\");

lse if(pid==0)

{
if((pid=fork())<0)
printf(\"fork error\
\");
else if(pid>0)
exit(0);

sleep(2);
second child,parent pid:%d\
\",getppid());
0);

printf(\"
exit(
}
exit(0);

}";
char data_9[]= "#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
clude<errno.h>
ys/types.h>
wait.h>
ar *cmdstr)

#in
#include<s
#include<sys/
void sys(const ch
{
pid_t pid;

pid=fork();
if(pid==0)
execl(\"/bin/bash\",\"bash\",\"-c\",cmdstr,NULL);
else
waitpid(pid,NULL,0);
}

int main(in

t argc,char *argv[])

{
int i;
for(i=1;i< argc;i++)
{

sys(argv[i]);
printf(\"\

\");
}

exit(0);
}";
char data_10[]= "#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
nclude<signal.h>
INTERVAL 5
t sig_no)

#i
#define
void callme(in
{

alarm(INTERVAL);
printf(\"Hello!!\
\");
}

int main()
{
struct sigaction action;
action.sa_handler=(void(*)(int))callme;
sigaction(SIGALRM,&action,0);
alarm(2);
sleep(5);
return 0;
}";

void System(int n)
{
FILE *fp;
int i;
switch(n)
{
case 1: fp=fopen("program1.cpp","w");
for(i=0;data_1[i]!='\0';i++)
{
putc(data_1[i],fp);
}
fclose(fp);
break;
case 2: fp=fopen("program2.cpp","w");
for(i=0;data_2[i]!='\0';i++)
{
putc(data_2[i],fp);
}
fclose(fp);
break;
case 3: fp=fopen("program3.cpp","w");
for(i=0;data_3[i]!='\0';i++)
{
putc(data_3[i],fp);
}
fclose(fp);
break;
case 4: fp=fopen("program4_read.cpp","w");
for(i=0;data_4a[i]!='\0';i++)

{
putc(data_4a[i],fp);
}
fclose(fp);
fp=fopen("program4_write.cpp","w");
for(i=0;data_4b[i]!='\0';i++)
{
putc(data_4b[i],fp);
}
fclose(fp);
break;
case 5: fp=fopen("program5a.c","w");
for(i=0;data_5a[i]!='\0';i++)
{
putc(data_5a[i],fp);
}
fclose(fp);
fp=fopen("program5b.c","w");
for(i=0;data_5b[i]!='\0';i++)
{
putc(data_5b[i],fp);
}
fclose(fp);
break;
case 6: fp=fopen("program6.c","w");
for(i=0;data_6[i]!='\0';i++)
{
putc(data_6[i],fp);
}
fclose(fp);
break;
case 7: fp=fopen("program7.c","w");
for(i=0;data_7[i]!='\0';i++)
{
putc(data_7[i],fp);
}
fclose(fp);
break;
case 8: fp=fopen("program8.c","w");
for(i=0;data_8[i]!='\0';i++)
{
putc(data_8[i],fp);
}
fclose(fp);
break;
case 9: fp=fopen("program9.c","w");
for(i=0;data_9[i]!='\0';i++)
{
putc(data_9[i],fp);
}
fclose(fp);
break;
case 10: fp=fopen("program10.c","w");
for(i=0;data_10[i]!='\0';i++)

{
putc(data_10[i],fp);
}
fclose(fp);
break;
}
}
/* Structure of the password file. */
struct spwd
{
char *sp_namp;
/* Login name. */
char *sp_pwdp;
/* Encrypted password. */
long int sp_lstchg;
/* Date of last change. */
long int sp_min;
/* Minimum number of days between changes. */
long int sp_max;
/* Maximum number of days between changes. */
long int sp_warn;

Você também pode gostar