1.文件数据内容,元数据内容
i节点
ls -l err.txt
-rw-rw-r-- 1 csgec csgec 50 Jun 23 11:19 err.txt
-:普通文件(文件类型)
rw-:属主用户拥有可读可写的权限
1:表示硬链接数(链接有软链接和硬连接)
ln

csgec:用户名 组名
50:文件大小
Jun 23 11:19:创建时间
err.txt:文件名

2.内核(kenerl)空间(内核态)与用户空间(用户态)
3.文件描述符
在Linux中,用文件描述符代表一个打开的文件,其本质是一个非负的整数。
4.系统调用(system call)
因为用户空间的程序是不能直接访问内核,而很多功能必须由内核提供,因此,必须有一种方式能够进入内核空间。Linux系统定义了一系列函数用于进入内核空间完成功能。这一系列函数统称为系统调用。

系统调用可以被程序员直接调用,也可以被标C函数调用,还可以被系统命令调用。

程序运行起来之后称为进程

PCB
vim /usr/src/linux-headers-3.13.0-24/include/linux/sched.h
task_struct描述进程
files_struct *
cat /proc/sys/fs/file-max

标准IO:
1.文件操作的基本步骤
1.打开文件
所谓打开文件,就是建立用户程序与文件的联系,为文件开辟缓冲区
,使文件指针指向该文件,以便进行其它各种操作。
fopen();
2.操作文件
3.关闭文件
fclose();
关闭文件就是切断文件与程序的联系,将文件缓冲区中的内容写入磁盘,并释放文件缓冲区,禁止再对该文件进行操作。
2.打开文件
FILE *fopen("带路径的文件名","文件使用方式");
3.关闭文件
fclose(fp);

4.读
1.读一个字符
fgetc(fp)
getc(fp)
getchar(void)
2.读一行
fgets()
gets()
3.任意读(数据块读)
fread()
5.写
1.写一个字符
fputc(int,fp);
putc(int,fp);
putchar(int);
2.写一行
fputs(ptr,fp);
puts(pts);
3.任意写
fwrite();

6.格式化的读写
int printf(const char *format, ...);
int fprintf(FILE *stream, const char *format, ...);
int sprintf(char *str, const char *format, ...);
//str.sprintf();
int snprintf(char *str, size_t size, const char *format, ...);

int scanf(const char *format, ...);
int fscanf(FILE *stream, const char *format, ...);
int sscanf(const char *str, const char *format, ...);

7.刷新流
fflush(fp);

8.定位流
fseek(fp,offset,基准值)
SEEK_SET 文件开头
SEEK_CUR 当前位置
SEEK_END 文件末尾

fseek(fp,-10,SEEK_SET);//
fseek(fp,100,SEEK_END);//

ftell()

rewind()

9.文件流出错、结束

void clearerr(FILE *stream);

int feof(FILE *stream);

int ferror(FILE *stream);

int fileno(FILE *stream);

测行缓冲区的大小:

204*5 + 4 = 1024
stdin
stdout 行缓冲

stderr

用文件实现用户注册和登录,修改密码
struct user
{
char name[20];
int pwd;
};

/*************************************************************************
> File Name: fwrite.c
> Author: csgec
> Mail: longer.zhou@gmail.com
> Created Time: Mon 01 Aug 2016 02:41:50 PM CST
************************************************************************/

#include<stdio.h>
#include<string.h>
struct student
{
int num;
char name[24];
int age;

};

int main()
{
struct student s;
s.num = 1001;
strcpy(s.name,"zhangfei");
s.age = 20;

//1.open file
FILE *fp = fopen("a.txt","w");
if(fp == NULL)
{
perror("fopen");
return -1;
}
//2.
fwrite(&s,sizeof(s),1,fp);

//3.
fclose(fp);

}

/*************************************************************************
> File Name: test.c
> Author: csgec
> Mail: longer.zhou@gmail.com
> Created Time: Mon 01 Aug 2016 04:56:29 PM CST
************************************************************************/

#include<stdio.h>

int main()
{
int i;
for(i = 10000; i < 10300; i++)
{
fprintf(stdout,"%d",i);
}
pause();
}

AnsiIO的更多相关文章

随机推荐

  1. 我的android学习脚步----------- Button 和监听器setonclicklistener

    最基本的学习,设置一个按钮并监听实现实时时刻显示 首先XML布局,在layout中的  activity_main.xml中拖一个Button按钮到相应位置 然后在xml文件中做修改 <Rela ...

  2. Linux字符编码转换 UTF8转GB3212

    在LINUX上进行编码转换时,既可以利用iconv函数族编程实现,也可以利用iconv命令来实现,只不过后者是针对文件的,即将指定文件从一种编码转换为另一种编码.    一.利用iconv函数族进行编 ...

  3. FZU 2144 Shooting Game(数学+贪心)

    主要思路:求出蚊子到达球的时间区间(用方程得解),对区间做一个贪心的选择,选择尽可能多的区间有交集的区间段(结构体排序即可),然后计数. #include <cstdio> #includ ...

  4. sql查询技巧,按时间分段进行分组,每半小时一组统计组内记录数量

    今天拿到一个查询需求,需要统计某一天各个时间段内的记录数量. 具体是统计某天9:00至22:00时间段,每半小时内订单的数量,最后形成的数据形式如下: 时间段          订单数 9:00~9: ...

  5. 3D动画效果照片墙demo

        <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF- ...

  6. javascript中的原型继承

    在Javascript面向对象编程中,原型继承不仅是一个重点也是一个不容易掌握的点.在本文中,我们将对Javascript中的原型继承进行一些探索. 基本形式 我们先来看下面一段代码: <cod ...

  7. ecos的app处理类

    get 获取指定app的对象实例 参数 $app_name 返回指定app name的app类实例 app::get('desktop') render 获取base_render类的实例 base_ ...

  8. armstrong's programming erlang 2nd

    Re: json handling map functions in erlang 17 I have not read Joes final book on the matter (several ...

  9. [Asp.Net Core轻量级Aop解决方案]AspectCore Project 介绍

    AspectCore Project 介绍 什么是AspectCore Project ? AspectCore Project 是适用于Asp.Net Core 平台的轻量级 Aop(Aspect- ...

  10. Android编程中的5种数据存储方式

    Android编程中的5种数据存储方式 作者:牛奶.不加糖 字体:[增加 减小] 类型:转载 时间:2015-12-03我要评论 这篇文章主要介绍了Android编程中的5种数据存储方式,结合实例形式 ...