AnsiIO
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的更多相关文章
随机推荐
- logo集锦
收集一个酷酷的技术公司的logo,一方面学习其中的美,另一方面打算用代码的画出这些logo算做致敬.感谢他们改变了我们的世界. 三星 苹果 戴尔 谷歌 IBM intel 惠普
- Android网络开发之OkHttp--基本用法GET
1.OkHttp框架使用了OkIo.jar包,不要忘记添加. 2.对于Request对象是如何实例化的,大家可以参考--java builder设计模式 http://www.cnblogs.com/ ...
- CodeForces 616B Dinner with Emma
水题 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; +; ...
- C#平衡树(AVLTree)
参考:http://www.cnblogs.com/skywang12345/p/3577479.html using System; using System.Collections.Generic ...
- WEB在线预览PDF
这是我在博客园发表的第一篇文章.以后会陆续把在线预览其他格式文档的解决方案发表出来. 解决思路:把pdf转换成html显示. 在线预览pdf我暂时了解3种解决方案,欢迎大家补充. 方案一: 利用pdf ...
- Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例【附详细代码】
http://blog.csdn.net/xiefu5hh/article/details/51707529 Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例[附 ...
- iOS 图片拉伸
UIImage *img = [UIImage imageNamed:@"CGUnwrapRed_2"]; img = [img stretchableImageWithLeftC ...
- Ubuntu Apache2 配置简单介绍
debian系列的(如Ubuntu,本人是Ubuntu 12.04的)Apache 通过 apt-get 方式安装的是 Apache2 的,是 httpd 的 2.x 版本,名字直接叫 apache2 ...
- XCode 7上传遇到ERROR ITMS-90535 Unexpected CFBundleExecutable Key. 的解决办法
去第三方的info.plist文件中,比如TencentOpenApi_IOS_Bundle.bundel 的info.plist ,删除 executable file 这一行
- iOS越狱包
编译完了的程序是xxx.app文件夹,我们需要制作成ipa安装包,方便安装 找一个不大于500*500的png图片(程序icon图标即可),改名为:iTunesArtwork,注意不能有后缀名. 建立 ...