码迷,mamicode.com
首页 > 其他好文 > 详细

ioctl函数理解

时间:2015-06-15 09:27:56      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:ioctl

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函数理解

标签:ioctl

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!