环境:Vmware Workstation;CentOS-6.4-x86_64
程序说明:
通过fork得到两个一模一样的进程,然后在子进程中执行execve函数调用另外一个进程,通过共享的文件描述符读取文件信息。
程序书写步骤:
1、创建并编写makefile文件:
.SUFFIXES:.c .o
CC=gcc
SRCS1=main.c
OBJS1=$(SRCS1:.c=.o)
EXEC1=main
SRCS2=other.c
OBJS2=$(SRCS2:.c=.o)
EXEC2=other
start: $(OBJS1) $(OBJS2)
$(CC) -o $(EXEC1) $(OBJS1)
$(CC) -o $(EXEC2) $(OBJS2)
@echo "-----------------------------OK-----------------------"
.c.o:
$(CC) -Wall -o $@ -c $<
clean:
rm -rf $(EXEC1) $(OBJS1)
rm -rf $(EXEC2) $(OBJS2)
2、创建并编写源文件other.c:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
int main(int arg, char *args[])
{
// 通过传递的参数获取文件描述符
char *file_num = args[1];
// 把字符串转换成数字
int fd = atoi(file_num);
// 定义一个字符数组用来存储读取到的信息
char buf[1024];
// 清空缓冲区内存
mem