Chinaunix首页 | 论坛 | 博客
  • 博客访问: 178442
  • 博文数量: 43
  • 博客积分: 2516
  • 博客等级: 少校
  • 技术积分: 500
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-09 10:25
文章分类

全部博文(43)

文章存档

2011年(1)

2009年(11)

2008年(31)

我的朋友

分类:

2009-02-25 19:08:36

新年刚过,抢个位置。
年底在家也看了写linux方面的东西,来又总结了一些,稍微总结一下。
首先是几个发现,程序执行过程中,并不是马上输出stdout,而是等程序结束的时候才会输出。以下面例子为证:
#include
int main()
{ printf("hello,world");
sleep(10);
return 0;
}
#include
int main()
{printf("Hello,world");
flush(stdout);
sleep(10);
return 0;
}
二者明显不同。因此在需要输出时经常采用flush来更新
2:pkgconfig
具体不是很懂。但是有的时候系统提示找不到某个程序,而你确定已经装过该程序,可以把程序的.pc文件拷到该目录下。实在/lib,还是在/usr/lib里,具体搞不清了。
目前在学校tcl/tk,有时间搞搞python,很有用。软件方面一直欠缺,希望今年会改善
1所述并非全对,linux对待io采用FILE结构,而不是采用文件描述符。File包含了一个文件描述符和一个缓冲,文件描述符指向文件描述符表格入口,用来把文件写入磁盘。当写入文件时,数据并不立即写入磁盘,而是先放入缓冲中,即buffer,只有当buffer满时,数据才写入磁盘。因此长采用fflush来刷新(上面写错了)。
终端io略有不同,采用线缓冲而非完全缓冲,即只有在缓冲满时或遇到下一行标志。对上例而言,如果输出内容为“hello,world\n",则立即输出。值得注意的是stderr是不缓冲的,写的内容立即输出。
阅读(998) | 评论(0) | 转发(0) |
0

上一篇:年度总结

下一篇:2009.3.1会议记录

给主人留下些什么吧!~~