我试图为qnx 6.6 over / proc / {pID} / as创build我自己的进程pipe理器。
但是我只需要改变一个 *** 作(io_open),所有其他 *** 作应该继续使用旧文件(/ proc / {pID} / as)。
我可以只是得到指针resmgr_context_t(从path或fd,在resmgr_attach之前)和所有其他 *** 作只是调用默认function?
这是我想要的例子:
创build一个JAR文件并运行在RaspBerry PI上
appassembler maven插件不会对生成的脚本设置“执行”权限
波科计时器示例
在Unix中启动和停止SAS Server 9.2
python上的opencv错误
resmgr_context_t* old_context; int my_lseek(resmgr_context_t *ctp,io_lseek_t *msg,RESMGR_OCB_T *ocb){ return iofunc_lseek_default(old_context,msg,ocb); }
C ++:如何检查没有扩展名的文件的types
.git文件夹跨平台?
两个date减去年龄
什么是好的工具来进行IO测量和发现linux上的瓶颈?
如何在连接之前插入新行?
您需要创建一个只为io_open注册函数的常规资源管理器,所有其他资源管理器 *** 作将过滤到堆栈中较低的资源管理器。
如果您希望消息将resmgr堆栈向下移动到其他注册的io_open回调,则从io_open回调中返回ENOENT,否则返回EOK。
为简洁起见,省略错误检查。
#include <errno.h> #include <stdio.h> #include <stddef.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #include <time.h> #include <sys/iofunc.h> #include <sys/dispatch.h> static resmgr_connect_funcs_t connect_funcs; static resmgr_io_funcs_t io_funcs; static iofunc_attr_t attr; int io_open (resmgr_context_t *ctp,io_open_t *msg,RESMGR_HANDLE_T *handle,voID *extra); int main(int argc,char **argv) { resmgr_attr_t resmgr_attr; dispatch_t *dpp; dispatch_context_t *ctp; int ID; // initialize dispatch interface dpp = dispatch_create(); // initialize resource manager attributes memset(&resmgr_attr,sizeof resmgr_attr); resmgr_attr.nparts_max = 1; resmgr_attr.msg_max_size = 2048; // initialize functions for handling messages iofunc_func_init(_RESMGR_CONNECT_NFUNCS,&connect_funcs,_RESMGR_IO_NFUNCS,&io_funcs); connect_funcs.open = io_open; // initialize attribute structure used by the device iofunc_attr_init(&attr,S_IFNAM | 0666,0); // attach to /proc/{pID}/as path,replace '1' with correct pID resmgr_attach(dpp,&resmgr_attr,"/proc/1/as",_FTYPE_ANY,_RESMGR_FLAG_BEFORE|_RESMGR_FLAG_DIR,&io_funcs,&attr); ctp = dispatch_context_alloc(dpp); /* start the resource manager message loop */ while(1) { if((ctp = dispatch_block(ctp)) == NulL) { perror("dispatch_block"); return EXIT_FAILURE; } dispatch_handler(ctp); } } int io_open (resmgr_context_t *ctp,voID *extra) { time_t tod; tod = time(NulL); printf ("%10d %-32s is being openedn",tod,msg->connect.path); return(ENOENT); }
总结以上是内存溢出为你收集整理的qnx获取旧资源pipe理器的resmgr_context_t全部内容,希望文章能够帮你解决qnx获取旧资源pipe理器的resmgr_context_t所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)