您的位置:首页 > 运维架构 > Docker

Docker容器管理

2016-03-21 18:13 399 查看
ANSI C提供了 文件的2种视图:

文本视图和二进制视图

 

二进制视图中,文本中的每个字节都可以为程序所访问 。在文本视图中,程序看到的内容和文本内容可能会有差异,差异主要体现在换行表现上 。使用文本试图读取文件时,将行尾的本地表示法转换成c试图的,在输出的时候,还要将c试图的行尾表示转换成本地的行尾表示法 。在msdos下 ,\r\n表示行尾。

 

二进制视图:文本的本地表现。

文本视图:文本行尾的本地表现转换成c视图后的表现。

 

在unix中二进制和文本没有差别。

 

 

标准文件:c程序自动打开3个文件,标准输入、标准输出、和标准错误输出

 

fopen()函数 :第一个参数是要打开的文件名(包含该文件名的字符串的地址),第二个参数用于指定文件打开模式的一个字符串

 

 

模式字符串 
意义
"r"打开一个文件,可以读取文件
"w"打开一个文件,可以写入文件,先将文件的长度截取为0.如果文件不存在的话则先创建文件
"a"打开一个文件,可以写入文件,向已有文件的尾部追加内容,如果文件不存在的话就先创建文件
"r+"打开一个文件,可以进行更新,即可以读取和写入
"w+"打开一个文件,可以读取和写入文件,先将文件的长度截取为0.如果文件不存在的话则先创建文件
"a+"打开一个文件,可以读取和写入文件,向已有文件的尾部追加内容,如果文件不存在的话就先创建文件
上述模式后加上b表示二进制而不是文本模式
 

对于unix和linux中文件模式只有一种,所以无所谓+b还是不加b,但是其中的w模式打开一个已有文件的话,文件的内容会被删除,以便程序以一个空文件开始操作。

 

程序成功打开一个文件之后,fopen()函数会返回一个文件指针,然后利用这个指针对文件进行其他操作。文件指针是一种指向FILE的指针,它不指向实际的文件,而是指向一个关于文件的信息的数据包。

如果打开不成功,fopen()函数返回空指针 Null

 

fprintf()和fscanf():工作方式和 printf()和scanf()类似,区别在于前2者须呀第一个参数来指定合适的文件int main()

{
const int max=40;
FILE  *fp;
char words[max];

if((fp=fopen("words","a+"))==NULL)
{
fprintf(stdout,"canopen file\n");
exit(1);
}
puts("Enter words to add to the file: press the enter");
puts("key at the beginning of a line to terminate");
while(gets(words)!=NULL&&words[0]!='\0')
{
fprintf(fp,"%s",words);
}
puts("file contens:\n");
rewind(fp);
while(fscanf(fp,"%s",words)==1)
{
puts(words);
}
if(fclose(fp)!=0)
{
fprintf(stderr,"error in closing\n");
}
return 0;
}

 

rewind()函数接受一个文件指针,然后指向文件的开头。

 

fgets()和fputs()函数

fgets()函数 接受三个参数:第一个参数,用来存储输入的地址(char *类型),第二个参数是整数 用来保存输入字符串的最大长度;最后一个参数是文件指针,指向所有读取的文件。

 

 

fgets(buf,MAX,fp);

 buf是一个char数组的名称,MAX是字符串最大长度,fp是一个指向FILE的指针。该函数读取的哦啊他所遇到的第一个换行字符的后面,或者读取比字符串最大长度少一个的字符,或者是文件的末尾。容纳后fgets自己添加空字符以构成一个字符串 。

 

 

随机存取 : fseek()和ftell()函数

fseek()函数有点类似数组 ,随即存取,在 fopen()打开的文件中直接移动到任意字节处 。

ftell()函数以一个long类型值返回文件的当前位置。

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: