【问题标题】:unknown type name ‘caddr_t’ error未知类型名称“caddr_t”错误
【发布时间】:2011-11-11 03:22:19
【问题描述】:

我正在尝试使用设置“共享”内存位置

caddr_t mmap_ptr;

但是我得到一个错误。有什么帮助吗?谢谢!

还有

mmap_ptr = mmap((caddr_t) 0,   /* Memory Location, 0 lets O/S choose */
    MAX_BUFFER_SIZE,/* How many bytes to mmap */
    PROT_READ | PROT_WRITE, /* Read and write permissions */
    MAP_SHARED,    /* Accessible by another process */
    fid,           /* which file is associated with mmap */
    (off_t) 0);    /* Offset in page frame */

【问题讨论】:

    标签: c linux variables


    【解决方案1】:

    caddr_t 是一个 BSD 主义,而且是一个老派。在 Linux(和 POSIX)下,mmap 返回一个 void 指针。

    #include <sys/mman.h>
    void *mmap (void *addr,
                size_t length,
                int prot,
                int flags,
                int fd,
                off_t offset);
    int munmap (void *addr,
                size_t length);
    

    【讨论】:

    • @Alexander,在我看来,您有两种可能性。一,留在Linux上,使用void*类型。第二,切换到支持它的 BSD 变体。我怀疑,如果是你自己的代码,前者会更容易:-)
    猜你喜欢
    • 2012-02-20
    • 2016-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-29
    • 2013-10-12
    • 1970-01-01
    相关资源
    最近更新 更多