il ne faut pas definir une nouvelle proc: `mq_open` in posix.nim c'est 
`varargs`, alors elle va accepter `(cstring,cint...)`

You don't need a new proc: `{.importc varargs.}` procs accept multiple 
arguments. The documentation for posix could be revised to reflect that.
    
    
    import posix, strformat
    const QMname = "/QMname"
    template check(assertion: untyped, msg: typed): untyped =
      if not assertion: echo msg, &": {strerror(errno)}"
    proc main() =
      let attr = MqAttr(mq_maxmsg: 99, mq_msgsize: 1024)
      let p_attr = attr.addr
      let mq = mq_open(QMname, O_CREAT or O_RDWR or O_EXCL, 0o644, p_attr)
      check(mq >= 0, "Error opening queue")
      check(mq_getattr(mq, p_attr) >= 0, "Error getting attrs")
      echo &"getattr--> {attr.mq_flags} -- {attr.mq_maxmsg} -- 
{attr.mq_msgsize} -- {attr.mq_curmsgs}"
      
      #cleanup
      dealloc(attr)
      discard mq_close(mq)
      discard mq_unlink(QMname)
    
    main()
    
    
    Run

Reply via email to