“如何定义”;常数;C语言中的结构
我正在Unix中开发一个相对简单的程序,一个模拟餐厅的客户机-服务器交互。 基本上,进入餐厅/服务器的客户可以通过FIFO订购一个或多个菜肴发送给“厨师”。 菜单必须设置在某个地方,并且服务器和客户端都可以访问。它必须是一系列碟形结构。我的第一个想法是将所有这些都包含在自定义头文件中: 在shared.h中“如何定义”;常数;C语言中的结构,c,unix,struct,header,C,Unix,Struct,Header,我正在Unix中开发一个相对简单的程序,一个模拟餐厅的客户机-服务器交互。 基本上,进入餐厅/服务器的客户可以通过FIFO订购一个或多个菜肴发送给“厨师”。 菜单必须设置在某个地方,并且服务器和客户端都可以访问。它必须是一系列碟形结构。我的第一个想法是将所有这些都包含在自定义头文件中: 在shared.h中 typedef struct _dish{ char name [MAX_LEN]; //name of food int id;
typedef struct _dish{
char name [MAX_LEN]; //name of food
int id; //ID
int preptime; //time needed to prepare it
} dish;
typedef struct _request {
pid_t cpid; //client pid
dish menu [MENUSZ]; //array of dishes
} request;
通过这种方式,客户机以“随机”的方式选择盘子,并将请求发送到服务器。
我的问题是:如何以及在哪里列出所有可用的菜肴?
此“菜单”必须适用于所有客户,并单独定义。
为了举例说明我的意思,我必须做类似的事情:
dish dish1;
dish1.name = "Pasta";
dish1.id = 1;
dish1.preptime = 5;
类似这样的东西,一个存储在某处的列表,客户端(很可能是服务器)可以访问该列表,这样可以更容易地将信息发送到服务器,这样我就可以只发送ID,服务器就已经知道它是哪种食物了。
提前谢谢 如果将它们放在标题中,则在菜单更改时需要重新编译服务器和客户端;根据您的需求,更好的设计是将它们放在服务器上的配置文件中,并让客户端请求–Christoph如果您没有破解编译器或libc,请避免使用前导下划线-如果有,请使用尾随下划线(结构和typedef使用相同的名称没有错)因此,您想知道如何初始化
盘的数组
?不是如何初始化,而是最好的方法是什么。如果我需要列出10种不同的菜肴,那么让它们易于接触和“使用”的最佳方法是什么?我可以把它们包括在标题中吗?或者我应该创建一个菜单结构,从服务器填充它,并将其添加到共享内存中?@EdoardoArnaudo:如果将它们放在头中,则在菜单更改时需要重新编译服务器和客户端;根据您的需求,更好的设计是将它们放在服务器上的配置文件中,并让客户端请求it@Christoph:谢谢!您的配置文件解决方案给了我一个类似的想法,创建了一个简单的“menu.txt”,让进程通过一种读取函数从中读取。看起来像是为我的目的工作!