- 论坛徽章:
- 0
|
我自己在freebsd4.5下面写了一个设备,在open函数中直接返回0。同时使用- #define IO_EXCH _IOW('F', 0, MYARG)
复制代码 定义了一个供ioctl函数使用的参数,MYARG是我自己的结构,里面没有指针。
我使用下面的代码调用:
- main(int argc, char **argv)
- {
- int file_desc, ret_val;
- MYARG arg;
- long addr[9];
- int i, j, count;
- int ret;
- pthread_t ptr;
-
- file_desc = open("/dev/linedev", O_RDWR);
- /*file_desc = open("/dev/bpf0", O_RDWR);*/
- if (file_desc < 0)
- {
- printf ("Can't open device file: cdev\n");
- exit(-1);
- }
-
- close(file_desc);
- }
复制代码
我在open和close的时候,设备对于的open和close函数被调用,这个正常;但是同时(在open和close、甚至read时),ioctl也被调用了,这是为什么?
各位老大给点意见好吗?我现在已经焦头烂额啦!  |
|