open和fopen的区别: 1.缓冲文件系统 缓冲文件系统的特点是:在内存开辟一个“缓冲区”,为程序中的每一个文件使用,当执行读文件的操作时,从磁盘文件将数据先读入内存“缓冲区”, 装满后再从内存“缓冲区”依此读入接收的变量。执行写文件的操作时,先将数据写入内存“缓冲区”,待内存“缓冲区”装满后再写入文件。由此可以看出,内存 “缓冲区”的大小,影响着实际操作外存的次数,内存“缓冲区”越大,则操作外存的次数就少,执行速度就快、效率高。一般来说,文件“缓冲区”的大小随机器 而定。 fopen, fclose, fread, fwrite, fgetc, fgets, fputc, fputs, freopen, fseek, ftell, rewind等 2.非缓冲文件系统 缓冲文件系统是借助文件结构体指针来对文件进行管理,通过文件指针来对文件进行访问,既可以读写字符、字符串、格式化数据,也可以读写二进制数 据。非缓冲文件系统依赖于操作系统,通过操作系统的功能对文件进行读写,是系统级的输入输出,它不设文件结构体指针,只能读写二进制文件,但效率高、速度 快,由于ANSI标准不再包括非缓冲文件系统,因此建议大家最好不要选择它。本书只作简单介绍。open, close, read, write, getc, getchar, putc, putchar 等。 open 是系统调用 返回的是文件句柄,文件的句柄是文件在文件描述副表里的索引,fopen是C的库函数,返回的是一个指向文件结构的指针。 fopen是ANSIC标准中的C语言库函数,在不同的系统中应该调用不同的内核api linux中的系统函数是open,fopen是其封装函数,个人观点。仅供参考。 文件描述符是linux下的一个概念,linux下的一切设备都是以文件的形式操作.如网络套接字、硬件设备等。当然包括操作文件。 fopen是标准c函数。返回文件流而不是linux下文件句柄。 设备文件不可以当成流式文件来用,只能用open fopen是用来操纵正规文件的,并且设有缓冲的,跟open还是有一些区别 一般用fopen打开普通文件,用open打开设备文件 fopen是标准c里的,而open是linux的系统调用. 他们的层次不同. fopen可移植,open不能 我认为fopen和open最主要的区别是fopen在用户态下就有了缓存,在进行read和write的时候减少了用户态和内核态的切换,而open则每次都需要进行内核态和用户态的切换;表现为,如果顺序访问文件,fopen系列的函数要比直接调用open系列快;如果随机访问文件open要比fopen快。 来自论坛的经典回答: 前者属于低级IO,后者是高级IO。 前者返回一个文件描述符(用户程序区的),后者返回一个文件指针。 前者无缓冲,后者有缓冲。 前者与 read, write 等配合使用, 后者与 fread, fwrite等配合使用。 后者是在前者的基础上扩充而来的,在大多数情况下,用后者。
发表评论
-
使用execvp 来调用程序传参
2015-07-08 14:52 988注意: execvp 函数会根据环境变量来查找程序 ... -
mail
2015-06-08 18:36 0<?php /** * 邮件发送 ... -
学生管理系统
2015-04-22 11:23 0#include <stdio.h> #in ... -
双向链表 数字按降序排列
2015-03-06 14:47 1385#include <stdio.h> #in ... -
20个C语言中常用宏定义总结
2015-03-02 10:41 47520个C语言中常用宏定义总结 2012-09-16 10:5 ... -
lseek
2015-01-05 09:41 4061. 每个打开的文件都有一个与其相关的“文件位置”。 ... -
UC 文件系统
2014-12-30 13:16 625#include <stdio.h> #in ... -
c自己写的一些常用的函数
2014-12-26 15:56 0size_t mystrlen(const cha ... -
Socket
2014-12-01 16:31 0一、Socket简介 Socket ... -
检查姓名的几种方法
2014-11-10 11:06 0int CheckXm(char *str){ ... -
任意语言访问PostgreSQL:C语言接口
2014-11-10 10:17 0任意语言访问PostgreSQL:C语言接口 来源: ... -
函数返回局部变量
2014-10-21 17:54 502一般的来说, ... -
assert()函数用法总结
2014-10-16 09:53 577assert宏的原型定义在<assert ... -
ADT 之 列表 C
2014-09-26 17:08 0list.h #ifndef __LIST_H__ ... -
指针释放之结构体
2014-09-03 18:10 660typedef struct{ uint ... -
error strerror 函数 用法
2014-08-26 16:15 712#include <stdio.h> #in ... -
uc 获取文件大小
2014-08-26 11:51 567#include <stdio.h> # ... -
一个字节中被置 1 的位的个数
2014-08-22 11:48 588第一种unsigned int TestAsOne ... -
C语言基础十一
2014-08-21 17:32 567指针数组是由多个同类 ... -
C语言基础十
2014-08-19 16:13 979malloc函数用于从堆中分配连续多个字节,如果失败则 ...
相关推荐
### Open与Fopen的区别 在计算机编程中,`open()` 和 `fopen()` 是两种用于文件操作的重要函数,它们在不同的场景下有着各自的特点和适用范围。本文将深入探讨这两个函数的区别,帮助开发者更好地理解何时以及如何...
"0.can't open " << dataList << endl; return -1; } 2、按行读取数据: 方法一: char loadImgPath[1000]; while(EOF != fscanf(fpListFile, "%s", loadImgPath)) { ... } 其中,loadImgPath不能...
新浪微博Open API,注:需要授权的开发者才能访问,其API调用格式类似Twitter,但需要一个API Key用于认证管理。
本篇文章将深入探讨Linux系统下的文件操作,主要关注`fopen`和`open`两个函数,它们在C语言编程中被广泛用于打开和处理文件。 首先,让我们了解`fopen`函数。`fopen`是C标准库中的函数,它提供了一种用户友好的方式...
open 和 fopen 函数的区别在于:open 函数属于低级 IO,返回一个文件描述符,而 fopen 函数属于高级 IO,返回一个文件指针。open 函数无缓冲,而 fopen 函数有缓冲。open 函数与 read, write 等函数配合使用,而 ...
google或者baidu一下,好多这样的问题,解决的方法都是修改php.ini,把allow_url_fopen给启用,改成 allow_url_fopen = On 这样做可以解决某些人的问题,有人说在php.ini中,有这样两个选项:allow_url_fopen =on...
在编程过程中,我们可能会遇到各种错误,其中"fatal error C1083: Cannot open include file: 'io.h': No such file or directory"是C++编译器在Windows环境中经常碰到的一个典型问题。这个错误表明在尝试编译代码时...
在PHP中,`fopen()` 和 `file_get_contents()` 都是用来处理文件操作的函数,但它们在使用方式和功能上有显著的区别。首先,我们来详细了解这两个函数。 1. **fopen()** `fopen()` 是一个非常灵活的文件处理函数,...
在Linux系统中,`fopen`是一个非常重要的C语言库函数,它被广泛用于打开、读取、写入和处理文件。在这个名为“file_cp.rar_linux fopen”的项目中,我们看到一个应用程序,它利用`fopen`来实现文件的复制功能。这个...
本示例将介绍两种不同的文件操作方法:一种是基于Windows API的CreateFile和相关函数,另一种是C标准库中的流式文件操作,即fopen函数。 1. **CreateFile方法**: CreateFile函数是Windows API提供的用于创建、...
在不同的编程语言中,如Python的`open()`函数,C++的`fopen()`函数,或者是LabVIEW(Visual Studio .VI可能对应的语言)中的相应节点或模块。 "open"标签可能意味着这个压缩包中的程序具有文件操作的核心功能,即...
首先,来看一下fopen()函数的基本语法和用法: fopen(string filename, string mode); 其中,filename参数是指定要打开或创建的文件名或URL。如果指定的是一个URL,并且符合'scheme://'的格式,PHP会将其视为网络...
根据提供的文档信息,我们可以归纳出以下几个关键的 Linux 文件操作相关的知识点: ### 1. `clearerr` — 清除文件流的错误标志 ...了解它们的使用方法和注意事项对于编写高效、可靠的程序至关重要。
在C语言中,`fopen()` 和 `fdopen()` 是两个重要的文件操作函数,它们用于在程序中打开和管理文件。下面将详细解释这两个函数的工作原理、参数、返回值以及使用示例。 **fopen() 函数** `fopen()` 是C语言标准库中...
这对于需要在标准I/O和低级文件操作之间切换的程序非常有用,例如,可以在使用标准I/O读取文件后,使用文件描述符进行某些特定于系统的操作。 **相关函数:** - `open`:底层系统调用,用于打开或创建文件。 - `...
本文主要讲解了三个关键的文件操作函数:`fopen`、`fclose`和`mkdir`,它们分别用于文件的打开、关闭以及创建目录。 1. **创建目录**: - 函数`_mkdir`用于创建一个新的目录。其函数原型为`int _mkdir(const char ...
除了常见的fopen、fclose、fread和fwrite外,还有一些高级函数可以创建特殊的文件流,如fmemopen、open_memstream和fdopendir。这些函数允许开发者在内存中操作数据,或以文件流的方式处理目录。本文将详细介绍这些...
$fp = fopen($fileName, 'w'); fwrite($fp, '这是中文内容'); fclose($fp); echo $fileName.' '; if(file_exists($fileName)){ echo 'hhhhh'; } ?> 结果: 文件名是乱码 解决: 对文件名进行编码...
fopen(filename,mode,include_path,context) 参数: filename 必需。规定要打开的文件或 URL。 mode 必需。规定要求到该文件/流的访问类型。 include_path 可选。如果也需要在 include_path 中检索文件的话...
php中读取文件可以使用fopen和file_get_contents这两个函数,二者之间没有本质区别,只是前者读取文件的php代码相比后者要复杂一点。本文章通过实例向大家讲解fopen和file_get_contents读取文件的实现代码。需要的...