본문 바로가기

Programming

fork and exec.c

#include <stdio.h>

#include <unistd.h>

#include <fcntl.h>


int g_fd;


int main(){


char* args[2];

char* env[2];

args[0] = "/bin/ps | grep ps";

args[1] = 0;

env[0] = 0;

env[1] = 0;


g_fd = open("tmp", O_RDWR|O_CREAT);

printf("g_fd : %d\n", g_fd);


int pid = fork();

// child.

if(pid==0){

dup2( g_fd, fileno(stdout) );

execve( args[0], args, env );

}

else{

char buf[1024];

int n;

sleep(1);

lseek(g_fd, 0, SEEK_SET);

while( n=read(g_fd, buf, 1024) ){

buf[n]=0;

printf("parent(%d) : [%s]\n", n, buf);

}

printf("n:%d\n",n); 


}


printf("end\n");

return 0;

}


'Programming' 카테고리의 다른 글

Android Rootkit  (0) 2013.04.24
Android rootkit developing environment  (0) 2013.04.23
sniffer.c  (0) 2013.03.19
proxy.c  (0) 2013.03.19
arpreply.c  (0) 2013.03.19