我是linux新手,我嘗試製作服務器(讀取器)和客戶端(作家);
所以客戶端可以用命名管道向服務器發送「Hi」。兩個程序之一在Makefile中命名管道
我寫這兩個程序。當我在Makefile中構建它們時,如何讓它們與命名管道通信?
//server programm:
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <sys/wait.h>
#include <unistd.h>
#include "fun.h"
#define MAX_BUF 1024
int main()
{
int pid,fd,status;
char * myfifo = "/home/pipe";
char buf[MAX_BUF];
pid=fork();
wait(&status);
if (pid<0){
exit(1);
}
if (pid==0){
mkfifo(myfifo, 0666);
fd = open(myfifo, O_RDONLY);
main1();
read(fd, buf, MAX_BUF);
printf("%s\n", buf);
}
else{
printf("i am the father and i wait my child\n");
}
close(fd);
return 0;
}
//client program:
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
#include "fun.h"
int main1()
{
int fd;
char * myfifo = "/home/pipe";
fd = open(myfifo, O_WRONLY);
write(fd, "Hi", sizeof("Hi"));
close(fd);
unlink(myfifo);
return 0;
}
//fun.h:
int main1()
//Makefile:
all: client.o server.o
gcc client.o server.o -o all
client.o: client.c
gcc -c client.c
server.o: server.c
gcc -c server.c
clean:
rm server.o client.o
以上是迄今爲止我寫的代碼。這是來自其他問題教程和視頻的簡單代碼。
首先讓你的客戶機/服務器在cmd行上工作。然後創建一個shell腳本來管理進程,即使命名管道,在後臺運行服務器,運行客戶端並通過命名管道發送數據,然後關閉/清除。然後,您可以查找如何將調用嵌入到shell腳本到makefile中。祝你好運。 – shellter
謝謝!我相信這是我正在尋找的! – ClockWork