wpeng 2013-09-21
fedora 18下的 虽然有19了 但...懒得升级...
记录的都是遇见的一些小问题..遇到就上来记一下 慢慢累积好了
1. yum install gcc失败
网上有很多解决办法.我用过不行之后 在gnome界面下用图形化的软件管理工具 安装就成功了( ̄_ ̄|||)
2. man内容缺失
在进行 man 2 open 等操作提示找不到
yum install man-pages就可以了
3.库函数fread的返回
size_t fread(void* ptr,size_t size,size_t n,FILE *stream)
在man里其实说的很清楚了 返回的是 块 数 所以只有块的size为1的时候返回的是实际字节
实际使用要注意这一点(不能用返回的块数*块大小来获得实际字节 因为如果最后读入的数据不满一个块的大小 数据是存入的但是块数不会+1)
举个例子
item大小设置为2048B 如果读22B(小于块大小均可) 则返回的块数是0
还有一个例子来说明块数和块大小:
#include <stdio.h> #define SIZE 1024 int main(void) { //文件大小为2KB 正好2048字节 FILE * file=fopen("temp_","r+"); char * buf[SIZE*2]; int item_count=fread(buf,2,SIZE/2,file); //这边一共将会最多读取1024个字节 2*(1024/2) printf("count:%d\n",item_count); //item数512 item大小为2下 返回512(一共1024字节被读出) item_count=fread(buf,1,SIZE,file); //这边一共将会最多读取1024个字节 1*1024 printf("count:%d\n",item_count); //item数1024 item大小为1下 返回1024(一共1024字节被读出) item_count=fread(buf,1,SIZE,file); printf("count:%d\n",item_count); //读完了 返回0 printf("eof?%s\n",feof(file)==0?"false":"true"); fclose(file); return 0; }