#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <pthread.h>
#include <semaphore.h>
#include <wait.h>
#include <signal.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <sys/ipc.h>
#include <sys/sem.h>
#include <semaphore.h>
#include <sys/msg.h>
#include <sys/shm.h>
#include <sys/un.h>
typedef struct sockaddr_in addr_in_t;
typedef struct sockaddr addr_t;
typedef struct sockaddr_un addr_un_t;
int main(int argc, const char* argv[]) {
pid_t pid = fork();
int bkp = dup(STDOUT_FILENO);
if(pid == 0) //子进程
{
int rfd = open("test.txt", O_RDONLY | O_CREAT, 0666);
while(1)
{ sleep(4);
char buf[1024]={0};
int res = read(rfd, buf, 1023);
if(res == 0)
{break;}
printf("%s", buf);
}
}
else if(pid > 0) //父进程
{
int wfd = open("test.txt", O_WRONLY | O_CREAT, 0666);
char buf[1024]={0};
scanf("%s", buf);
write(wfd,buf,1023);
wait(0);
}
else
{
perror("fork");
}
return 0;
}
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <pthread.h>
#include <semaphore.h>
#include <wait.h>
#include <signal.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <sys/ipc.h>
#include <sys/sem.h>
#include <semaphore.h>
#include <sys/msg.h>
#include <sys/shm.h>
#include <sys/un.h>
typedef struct sockaddr_in addr_in_t;
typedef struct sockaddr addr_t;
typedef struct sockaddr_un addr_un_t;
int main(int argc, const char* argv[]) {
pid_t pid = fork();
if(pid == 0) //子进程
{
execl("/usr/bin/find","find","/usr","-name","include",NULL);
}
else if(pid > 0) //父进程
{
char* arg[]={"find","/usr","-name","include",NULL};
execv("/usr/bin/find",arg);
}
else
{
perror("fork");
}
return 0;
}