包含头文件C没有此类文件或目录错误

时间:2012-12-23 15:17:11

标签: c unix ubuntu header-files

我正在尝试包含一个包含结构的头文件,但是当我尝试编译包含头文件的文件时,我得到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);

    .....
}

为什么我收到此错误?

1 个答案:

答案 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];