第一天----fclose

http://blog.csdn.net/qin9r3y/article/details/8652207

/*  了解C语言的存储*/

前一节fopen的返回值FILE *类型的指针是放在堆上

如果一个函数的返回值是指针并且有逆操作的时候,那么返回值的指针一定是在堆上的

如果一个函数的返回值是指针没有逆操作的时候,那么返回值的指针可能是在堆上也可能在静态区

int fclose(FILE *fp);

参数:流

返回值:成功0 ; 失败EOF默认为-1。

#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
int main(void)
{
    FILE *fp;

    fp = fopen("temp","w+");
    if( fp == NULL)
    {
        //fprintf(stderr , "fopen() failed . errno = %d\n",errno);
        //perror("fopen()");
        fprintf(stderr,"fopen():%s\n",strerror(errno));
        exit(1);

    }
    printf("ok!");
    fclose(fp);
    exit(0);
}

运行结果:成功创建文件并打印OK。

查看创建的文件权限:

-rw-rw-r--: 0666 & ~umask(0002) ;//目的为了产生文件过松的文件

测试使用的流资源都是有一个上限

#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
int main(void)
{
    FILE *fp;
    int count ;
    while (1)
    {
        fp = fopen("temp","w+");
        if( fp == NULL)
        {
            //fprintf(stderr , "fopen() failed . errno = %d\n",errno);
            perror("fopen()");
            break ;
        }
    }
    printf("count = %d\n",count);
    exit(0);
}

查看输出结果:

fopen(): Too many open files
count = 1021

命令:ulimit -a  查看---open files    1021+stdin+stderr+stdout ==1024

时间: 2024-08-27 14:02:50

第一天----fclose的相关文章

文件流:&quot;fopen&quot;,&quot;fclose&quot;,“ftell”&quot;fseek&quot;,&quot;fgets&quot;,&quot;fprintf&quot; ,“feof”,&quot;fwrite&quot;,&quot;fread&quot;

char const* filename="D:/hello.txt"; "fopen", FILE *fp=fopen(char const *name,char const mode); e.g:FILE *fp = fopen(filename,"wb"); 打开文件流,name为要打开文件的路径,如这里的filename:mode 为对文件的操作模式,通常使用:"wb"(写操作),"rb"(读操作)

第一天-----fopen使用

FILE *fopen(const char *path, const char *mode); /**/ FILE *fdopen(int fd, const char *mode); 打开一个流 参数一:const修饰,指定的文件---打开路径名为path的一个指定的文件 参数二:const修饰,指定对该I/O流的读写方式 ps:起始位置:文件的第一个有效字符 文件尾端:文件的最后一个有效字符的下一个字符 ///////////////////要求文件存在//////////////////

fopen()和fclose()的用法

1.fopen()函数的用法fopen函数用于打开文件, 其调用格式为:FILE *fopen(char *filename, *type);fopen()函数中第一个形式参数表示文件名, 可以包含路径和文件名两部分.如:"B:TEST.DAT""C:\\TC\\TEST.DAT"注意:如果将路径写成"C:\TC\TEST.DAT"是不正确的, 这一点要特别注意.fopen函数用来打开一个文件,其调用的一般形式为: 文件指针名=fopen(文件名

noip模拟赛 好元素 哈希表的第一题

这是一道关于 题2好元素 2s [问题描述] 小A一直认为,如果在一个由N个整数组成的数列{An}中,存在以下情况: Am+An+Ap = Ai (1 <= m, n, p < i <= N , m,n,p可以相同),那么Ai就是一个好元素. 现在小A有一个数列,请你计算数列中好元素的数目 [输入格式] 第一行只有一个正整数N,意义如上. 第二行包含N个整数,表示数列{An}. [输出格式] 输出一个整数,表示这个数列中好元素的个数. [输入样例] Sample1 2 1 3 Sampl

c语言走向c++的第一步,注释转换

最近刚开始学习c++,接触了一个小项目,写一个程序将C语言的注释转化为c++的注释,这个里面也要分很多种情况,下面我就把我做的小程序分享出来,在把C语言注释转化为c++注释的过程中,列举了以下几种情况 1.普通情况 /*int i = 0; 2.换行问题 /*int i = 0;*/int j = 0; /*int i = 0;*/ int j = 0; 3.匹配问题 /*int i = 0;/*xxxxx*/ 4.多行注释 /*int i = 0; int j = 0; int k = 0;

“金山杯2007逆向分析挑战赛”第一阶段第二题

注:题目来自于以下链接地址: http://www.pediy.com/kssd/ 目录:第13篇 论坛活动 \ 金山杯2007逆向分析挑战赛 \ 第一阶段 \ 第二题 \ 题目 \ [第一阶段 第二题] 题目描述: 己知是一个 PE 格式 EXE 文件,其三个(section)区块的数据文件依次如下:(详见附件)  _text,_rdata,_data 1. 将 _text, _rdata, _data合并成一个 EXE 文件,重建一个 PE 头,一些关键参数,如 EntryPoint,Imp

标准IO: 文件的打开与关闭函数 fopen &amp; fclose

(1) 流(stream)和文件(file)    流和文件 在Turbo C2.0中是有区别的, Turbo C2.0 为编程者和被访问的设备之间提供了一层抽象的东西, 称之为"流", 而将具体的实际设备叫做文件.流是一个逻辑设备, 具有相同的行为.因此, 用来进行磁盘文件写的函数也同样可以用来进行打印机的写入.在Turbo C2.0中有两种性质的流:   文字流( text stream)和二进制(binary stream).对磁盘来说就是文本文件和二进制文件.本软件为了便于让读

传智播客C语言视频第一季(有效下载期为10.1-10.7,10.8关闭)

?? J:\传智播客_尹成_C语言从菜鸟到高手├─传智播客_尹成_C语言从菜鸟到高手_第一章C语言概述A│      第一讲1.1C语言第一阶段.mp4│      第二讲1.2c语言入门教程.mp4│      ├─传智播客_尹成_C语言从菜鸟到高手_第七章编译选项_链表_栈_队列_C实战│  ├─7.1编译与预处理│  │      第10讲 7.1.14-24宏的高级用法2.mp4│  │      第11讲 7.1.25文件包含-7.1.28编译及预处理小节.mp4│  │      第

第一章:引言

1.1文学程序 文学程序(literate program):接口及其实现的代码与对其进行解释的正文交织在一起.文学程序由英文正文和带标签的程序代码块组成.例如, 1 〈compute x * y〉≡ 2 sum = 0; 3 for (i = 0; i < n; i++) 4 sum += x[i]*y[i]; 定义了名为〈compute x * y〉的代码块,其代码计算了数组x和y的点积.在另一个代码块中使用该代码块时,直接引用即可: 1 〈function dotproduct〉≡ 2 i