可以在accounting.c的文件中添加如下代码,实现管道
void pipe1(u8 *addr)
{//printf("weijinqian11111\n");
const char* pathname = "/home/weijinqian/hostapd-2.5/m_fifo";
int pipe_fd = -1;
int i=0;
unsigned char buf[7];
for (i = 0; i < 6; ++i)
{
buf[i]=(unsigned char)addr[i];
}
mkfifo(pathname, 0777);
//printf("weijinqian222222\n");
pipe_fd = open(pathname, O_WRONLY);
printf("Process %d result %d\n", getpid(), pipe_fd);
if(write(pipe_fd, buf, strlen(buf))==-1)
printf("write cuo wu \n");;
printf("Process %d finished!\n", getpid());
}
另外创建的进程代码为:
#include <unistd.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int main()
{
const char* pathname = "/home/weijinqian/hostapd-2.5/m_fifo";
unsigned char buf[6];
int pipe_fd;
pipe_fd = open(pathname, O_RDONLY);
printf("Process %d result %d\n", getpid(), pipe_fd);
read(pipe_fd, buf, sizeof(buf));
close(pipe_fd);
printf("Process %d finished,\n ", getpid());
printf("read content: %0x:%0x:%0x:%0x:%0x:%0x\n",(buf)[0], (buf)[1], (buf)[2], (buf)[3], (buf)[4], (buf)[5]);
return 0;
}