存档

2013年4月 的存档

UNIX环境高级编程学习笔记(上)

2013年4月19日 没有评论

---

此文作者:冰镇南瓜汁;mail:munantv@qq.com

文件I/O

常用函数:

<fcntl.h>

int open(const char *pathname, int oflag, ... /* mode_t mode */); 

打开或创建一个文件。第一个参数是文件的名字,第二个参数是选项,在O_RDONLY / O_WRONLY / O_RDWR 中选择一个打开的方式,然后可以用或运算指定额外的一些选项(例如O_APPEND写时追加到文件 尾,O_CREAT若文件不存在则创建,O_TRUNC文件截短为0等),第三个参数是创建新文件的访问权限位。返回值是当前最小的未用文件描述符,用于 该文件,出错返回-1。

int creat(const char *pathname, mode_t mode); 

创建一个新文件,等效于 open(pathname, O_WRONLY | O_CREATE | O_TRUNC, mode);

int fcntl(int filedes, int cmd, ... /* int arg */ ); 

改变一个文件的性质。其中cmd的选项包括:F_DUPFD(复制一个现有的描述符,第三个参数为描述符数值的下限)、F_GETFD(获得文件描述符标 志)、F_SETFD(设置文件描述符标志,值为第三个参数)、F_GETFL(获得文件状态标志,可以与O_ACCMODE进行与运算,然后与三种访问 方式标志比较,可以与其他标志进行与运算判断标志位的存在)、F_SETFL(设置文件状态标志,设置为第三个参数,通常先取得现有的标志,然后用或运算 添加标志,用补码的与运算删除标志)、F_GETOWN、F_SETOWN(异步I/O所有权)、F_GETLK、F_SETLK、F_SETLKW(记 录锁)。出错返回-1。
常见的用法:(错误处理略去)val = fcntl(fd, F_GETFL, 0); val |= flags; fcntl(fd, F_SETFL, val);

<unistd.h>

int close(int filedes); 

根据文件描述符filedes关闭已打开的该文件并释放该进程加在该文件上的所有记录锁,成功返回0,出错返回-1。

off_t lseek(int filedes, off_t offset, int whence); 

为一个打开的文件设置偏移量,whence可以取SEEK_SET(距离文件开始处offset字节)、SEEK_CUR(当前值加offset)、SEEK_END(文件长度加offset),成功时返回新的文件偏移量,出错返回-1。

ssize_t read(int filedes, void *buf, size_t nbytes); 

阅读全文...

网页版必应词典功能改进建议

2013年4月4日 没有评论

---

一直用的是旧版的必应词典,用起来很顺手,对于新版必应词典的建议,个人觉得在用户体验上更多地应该借鉴一下旧版的思路,有选择性保留一些功能亮点,下面说一下相对于新版词典,我选择用旧版的几个理由,或者说旧版让我用起来比较爽的地方:

建议 1)新版应该借鉴旧版的单词对比功能,如图所示,旧版通过标签的拖拽可以实现同义词的对比,一目了然;而新版的同义词无法实现对比,且加载速度感觉稍微逊色于旧版。

建议 2)之所以喜欢旧版,是因为这个产品的细节做的非常好,有一个细节个人很喜欢,就是旧版词典的“查询框”默认是全选待编辑的,如图所示,默认是全选待编辑状态,大大地方便了下一次的查询,可以直接输入新的查询词,而不需要先手动删除历史查询词,再输入新的查询词。对新版的建议就是对此加以借鉴。

建议 3)还有一个细节,建议新版词典引入,就是对于每次查询,旧版都会提供纠错的机会,如果单词的释义有误或用户觉得有更好的释义,尤其是对于句子的翻译,为用户提供发表建议的机会就显得很用心,如图所示是旧版的功能,新版没有,望借鉴

建议 4)建议新版保留旧版的历史查询词功能,这点个人觉得很好。

建议 5)建议有插件可以让词典嵌入到各个浏览器工具栏中,每次就不用找了,直接查询。

阅读全文...