您的位置:首页 > 运维架构 > Linux

linux高级编程day04 笔记

2012-08-21 15:43 375 查看
一.IO与文件映射
1.IO的共享与效率
read与write其中数据缓冲的大小
读取数据的缓冲大小:getpagesize。
2.定位与定位读取(随机读取)
read与write在操作的时候,自动移动读取位置.
lseek改变读取位置.

pread/pwrite在指定位置读写。
2.1.lseek的函数说明:

off_t   lseek(
int fd,//定位文件描述符号
off_t off,//定位位置
int whence//定位参照点:文件开始位置/文件结束位置/文件当前位置
//SEEK_SET    SEEK_END  SEEK_CUR
);


返回:
返回当前读取位置在文件中的绝对位置.
2.2.lseek的作用:定位文件的位置
问题:lseek的定位的位置超出文件的大小范围?
lseek移动位置只要合法,都是有效
2.3.lseek+write=pwrite
lseek+read =pread

View Code

#include <curses.h>
void init();
void drawUi();
void dealInput();
void destroy();
main()
{
init();
drawUi();
dealInput();
destroy();
}
void dealInput()
{
int a,b;
while(1)
{
mvaddstr(2,3,"     ");
mvscanw(2,3,"%d",&a);
mvaddstr(2,11,"     ");
mvscanw(2,11,"%d",&b);
mvaddstr(2,19,"      ");
mvprintw(2,19,"%d",a+b);
refresh();
}
}
void drawUi()
{
mvaddstr(2,2,"[     ]+[     ]=[      ]");
refresh();
}
void destroy()
{
endwin();
}
void init()
{
initscr();
}


1.在vi设置编码:
:set encoding=编码 gb2312 ios-8859-1 utf-8
2.在编译器指定源文件的编码 -finput-charset=gb2312
3.在终端指定编码:
4.系统默认编码
/etc/sysconfig/i18n配置编码

作业:(使用文件映射)
1.使用内存方式读取数据
2.使用curses+io完成:图书信息的录入
3.使用curses+io显示图书信息:
每次显示一条:
使用up down键翻滚记录数据
4.读取文件文件,使用curses 显示.
实现如下功能:
上下翻页功能
输入q,结束功能
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: