首页 > 其他 > 详细

ioctl函数理解

时间:2015-06-15 09:25:42      阅读:305      评论:0      收藏:0      [点我收藏+]

ioctl 是设置和获取设备文件的物理特性,不同设备文件其物理特性不一样。比如串口的波特率,显示器分变率等。值得说明的是fcntl 与ioctl不同在于fcntl是描述文件访问控制属性而

ioctl是操作文件的物理特性。可以简单理解fcntl是操作文件共性,ioctl是操作文件的个性。

#include <sys/ioctl.h>

 int ioctl(int fd, int request, ...);

下面以串口为例:ioctl获取或者设置设备文件的物理特性,因此最终命令也是传递到驱动层。因此request参数以及可变参数取决于设备驱动函数提供的命令。具体可以通过文档或者上网查找。

技术分享

获取终端大小:

#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<sys/ioctl.h>

void main()
{
	struct winsize size;//是内核提供的,终端大小
	if (isatty(STDOUT_FILENO) == 0)//判读是否是终端文件
		exit(1);
	if(ioctl(STDOUT_FILENO, TIOCGWINSZ, &size)<0) 
	{
		perror("ioctl TIOCGWINSZ error");
		exit(1);
	}
	printf("%d rows, %d columns\n", size.ws_row, size.ws_col);//输出终端大小
}

技术分享


技术分享

ioctl函数理解

原文:http://blog.csdn.net/huangshanchun/article/details/46494447

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!