|
|
1.1 root 1: #include <stdio.h>
2: #include <signal.h>
3: #include <sys/pioctl.h>
4:
5: main(argc,argv)
6: int argc; char **argv;
7: {
8: int pfd;
9: char procnam[16];
10: long mask = (1<<(SIGSTOP-1));
11: FILE *ttyerr;
12:
13: ttyerr = fopen("/dev/tty", "w");
14: if (argc <= 1) {
15: if( ttyerr )
16: fprintf(ttyerr,"Usage: %s cmd [args...]\n",*argv);
17: exit(1);
18: }
19: sprintf(procnam,"/proc/%05d",getpid());
20: if ((pfd=open(procnam,0)) < 0) {
21: if( ttyerr )
22: fprintf(ttyerr,"cannot open %s\n",procnam);
23: exit(1);
24: }
25: ioctl(pfd,PIOCSMASK,&mask);
26: ioctl(pfd,PIOCSEXEC,0);
27: close(pfd);
28: if( ttyerr ){
29: fprintf(ttyerr,"%s\n",procnam);
30: fclose(ttyerr);
31: }
32: execvp(argv[1], argv+1);
33: perror(argv[1]);
34: exit(1);
35: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.