环境
# uname -k -n -s
QNX localhost 7.1.0-1.3.0
效果
# echo 123456789 > /dev/mynull
#
# cat /dev/mynull
123456789
实现
#include <stdio.h> #include <sys/iofunc.h> #include <sys/resmgr.h> #include <sys/dispatch.h> #include <sys/iofunc.h> #include <sys/dispatch.h> #include <cstring> #include <stdlib.h> static char ram_disk[10]; const int32_t block_size = 1; static int do_read(resmgr_context_t *ctp, io_read_t *msg, RESMGR_OCB_T *ocb) { size_t nbytes = 0; int ret = EOK; if(iofunc_read_verify (ctp, msg, ocb, NULL) != EOK) { ret = EBADF; } else if(ocb->offset >= sizeof(ram_disk)) { /* read end */ ret = EOK; } else { if(ocb->offset + block_siz