【发布时间】:2022-01-02 06:56:23
【问题描述】:
如何在c中的应用程序之间共享数据?
我使用了一个临时文件作为永久存储。客户端输入数据,服务器可以读取它。这样做的目的是使添加任意数量的客户端成为可能。这纯粹是一个研究问题,与现实世界的问题没有直接关系。
有没有更好的方法在应用程序之间共享数据?
ipc.h(程序间通信.h)
#ifndef IPC /* Include guard */
#define IPC
void write_message(int ID);
void read_message();
#endif
client.c
#include <stdlib.h>
#include <stdio.h>
#include "ipc.h"
int main()
{
int ID;
while(1){
printf("Please enter ID: ");
scanf("%d", &ID);
write_message(ID);
}
return 0;
}
服务器.c
#include <stdlib.h>
#include <stdio.h>
#include <windows.h>
#include "ipc.h"
int main()
{
while(1){
read_message();
Sleep(100);
}
return 0;
}
ipc.c(包含 ipc.h 中描述的功能)
#include <stdlib.h>
#include <stdio.h>
#include "ipc.h"
void write_message(int ID){
FILE * fp;
fp = fopen("temp.txt", "w");
if(fp == NULL)
{
printf("Error!");
exit(1);
}
fprintf(fp, "ID\t:\t%d\n", ID);
fclose(fp);
}
void read_message(){
FILE * fp;
char c;
fp = fopen("temp.txt", "r");
if(fp == NULL)
{
exit(1);
}
while ((c = getc(fp)) != EOF){
printf("%c", c);
}
fclose(fp);
}
【问题讨论】:
-
欢迎来到 Stack Overflow。在发布问题之前,预计已经完成了基础研究。例如,您是否在您最喜欢的搜索引擎中输入了“C 共享内存”或“C 进程间通信”?
标签: c windows shared-memory