我正在尝试包含一个包含结构的头文件,但是当我尝试编译包含头文件的文件时,我得到No such file or Directory
错误。 .c
和头文件都在同一目录中。
以下是代码:
头文件“MyShared.h”:
#ifndef MYSHARED_H_INCLUDED
#define MYSHARED_H_INCLUDED
#define PERM (S_IRWRU | S_IRGRP)
#define MySharedKey 0343
#define SIZE 2048
struct MyShared
{
char *buf[SIZE];
int ReadfromBuf,WriteToBuf,readbytes;
};
#endif
Mem.c
文件,包括头文件:
#include <sys/shm.h>
#include "MyShared.h"
int main()
{
MyShared *obj;
int shmid,i,childpid;
shmid = shmget(MySharedKey,sizeof(MyShared),NULL);
.....
}
为什么我收到此错误?
答案 0 :(得分:1)
在C中,结构定义不是typedef。
#include <sys/shm.h>
#include "MyShared.h"
int main()
{
struct MyShared *obj;
int shmid,i,childpid;
shmid=shmget(MySharedKey, sizeof *obj, NULL);
.....
}
BTW:我认为你不想在共享内存中使用指针数组:char *buf[SIZE];
应该是char buf[SIZE];