文件指针

网易互娱我来辣

岁酱吖の 提交于 2019-11-29 12:32:55
static的作用: 1.第一条也是最重要的一条:隐藏 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。如果加了static,就会对其它源文件隐藏。例如在a和msg的定义前加上static,main.c就看不到它们了。利用这一特性可以在不同的文件中定义同名函数和同名变量,而不必担心命名冲突。Static可以用作函数和变量的前缀,对于函数来讲,static的作用仅限于隐藏 2.static的第二个作用是保持变量内容的持久 3.static的第三个作用是默认初始化为0 虚函数,具体怎么实现 https://blog.csdn.net/weixin_40237626/article/details/82313339 指针和引用的区别: 内存分配: 指针是一个实体,需要分配内存空间。引用只是变量的别名,不需要分配内存空间。 初始化: 引用在定义的时候必须进行初始化 , 并且不能够改变。 指针在定义的时候 不一定要初始化 , 并且指向的空间可变。 使用级别:有多级指针,但是没有多级引用,只能一级引用。 自增运算:指针和引用的自增运算结果不一样。(指针是指向下一个空间,引用时引用的变量值加1) 使用sizeof时: 引用得到的是所指向的变量(对象)的大小,而sizeof 指针得到的是指针本身的大小。 直接与间接访问: 引用访问一个变量是直接访问

Java 输入/输出——处理流(RandomAccessFile)

▼魔方 西西 提交于 2019-11-29 04:39:58
  RandomAccessFile是Java输入/输出流体系中功能最丰富的文件内容访问类,它提供了众多的方法来访问文件内容,它既可以读取文件内容,也可以向文件输出数据。与普通的输入/输出流不同的是,RandomAccessFile支持“随机访问”的方式,程序可以直接跳转到文件的任意地方来读写数据。   由于RandomAccessFile可以自由访问文件的任意位置,所以如果只需要访问文件部分内容,而不是把文件从头读到尾,使用RandomAccessFile将是更好的选择。   RandomAccessFile方法虽然多,但它有一个最大的局限,就是只能读写文件,不能读写其它IO节点。   RandomAccessFile对象也包含了一个记录指针,用以标识当前读写的位置,当程序新创建一个RandomAccessFile对象时,该对象的文件记录指针位于文件头(也就是0处),当读/写了n个字节后,文件记录指针将会向后移动n个字节。除此之外,RandomAccessFile可以自由移动该记录指针。RandomAccessFile包含了两个方法来操作文件记录指针。 Constructors Constructor Description RandomAccessFile ​( File file, String mode) Creates a random access file

RandomAccessFile使用小结

♀尐吖头ヾ 提交于 2019-11-29 04:39:49
本文是基于Linux环境运行,读者阅读前需要具备一定Linux知识 RandomAccessFile是Java输入/输出流体系中功能最丰富的文件内容访问类,既可以读取文件内容,也可以向文件输出数据。与普通的输入/输出流不同的是,RandomAccessFile支持跳到文件任意位置读写数据,RandomAccessFile对象包含一个记录指针,用以标识当前读写处的位置,当程序创建一个新的RandomAccessFile对象时,该对象的文件记录指针对于文件头(也就是0处),当读写n个字节后,文件记录指针将会向后移动n个字节。除此之外,RandomAccessFile可以自由移动该记录指针 RandomAccessFile包含两个方法来操作文件记录指针: long getFilePointer():返回文件记录指针的当前位置 void seek(long pos):将文件记录指针定位到pos位置 RandomAccessFile类在创建对象时,除了指定文件本身,还需要指定一个mode参数,该参数指定RandomAccessFile的访问模式,该参数有如下四个值: r:以只读方式打开指定文件。如果试图对该RandomAccessFile指定的文件执行写入方法则会抛出IOException rw:以读取、写入方式打开指定文件。如果该文件不存在,则尝试创建文件 rws:以读取

PHP 关于文件操作的简单介绍

↘锁芯ラ 提交于 2019-11-28 19:31:23
文件操作一直是Web程序员头疼的地方,而文件操作在CMS这样的系统中又是必须的。如今,PHP文件操作的函数内容已经非常强大,文件这部分也是学习PHP非常重要的一部分,希望大家不要忽略。这篇文章会简单介绍一下PHP的几个基本文件操作,最后附有PHP文件函数汇总,供大家参考和学习。 1. 打开文件:fopen("文件名","模式"); 模式参数: r:只读,将文件指针指向文件头。 r+:读/写,将文件指针指向文件头。 w:只写,打开并清空文件的内容。如果文件不存在,则创建文件。 w+:读/写,打开并清空文件的内容。如果文件不存在,则创建文件。 a:追加,打开并向文件的末端进行写操作。如果文件不存在,则创建新文件。 a+:读/追加,通过向文件末端写内容,来保持文件内容。 2. 关闭文件:fclose(); 使用文件完毕,要显式的告诉PHP已经使用完文件,例如: $file=fopen("test.txt","r"); //关闭一个已打开的文件指针 //some code be executed fclose=($file); 3. 检测是否已达到文件的末端:feof(); 例如:if(feof($file)){ echo "end of file";} 4. 逐行读取文件:fgets(); 例如: $file=fopen("test.txt","r"); while(!feof(

<每日 1 OJ> -内存文件系统

白昼怎懂夜的黑 提交于 2019-11-28 13:21:28
蛮有意思的,主要考查链表和树结构的知识。 代码如下: ******************************************************************************/ #include "FileManager.h" //#include <stdafx.h> #include "stdio.h" #include "string.h" #include "map" #include "malloc.h" #define NO 0 #define OK 1 //文件定义 链表结构 //文件定义 struct file { char filename[300]; struct file *nextf;//p310 链表 *nextf 是指针变量,指向结构体变量,存放下一个节点的地址 }; // struct dir { char dirName[300]; struct dir* subDir; //子目录 struct dir* borDir; //兄弟目录 struct dir* parDir; //父目录 struct file* fhead;//当前目录的文件 }; //全局根目录初始化 struct dir root={"root",NULL,NULL,NULL,NULL}; /* 功能描述:根据目录名获得目录指针 参数描述

【操作系统】文件管理

╄→尐↘猪︶ㄣ 提交于 2019-11-28 03:26:54
文件系统基础 文件是以计算机硬盘为载体的存储在计算机上的信息集合。在系统运行时,计算机以进程为基本单位进行资源的调度和分配;而在用户进行的输入、输出中,则以文件为基本单位。 文件的基本操作: 创建文件。创建文件有两个必要步骤:一是在文件系统中为文件找到空间;二是在目录中为新文件创建条目,该条目记录文件名称、在文件系统中的位置及其他可能的信息。 写文件。为了写文件,执行一个系统调用,指明文件名称和要写入文件的内容。对于给定文件名称,系统搜索目录可以查找文件位置。系统必须为该文件维护一个写位置的指针。每当发生写操作时,便更新写指针。 读文件。为了读文件,执行一个系统调用,指明文件名称和要读入文件块的内存位置。同样,需要搜索目录以找到相关目录项,系统维护一个读位置的指针。每当发生读操作时,更新读指针。一个进程通常只对一个文件读或写,因此当前操作位置可作为每个进程当前文件位置的指针。由于 读和写都使用同一指针 ,因此节省了空间,也降低了系统的复杂性。 文件重定位(文件寻址)。按某条件搜索目录,将当前文件位置设为给定值,并且不会读、写文件。 删除文件。先从目录中找到要删除文件的目录项,使之成为空项,然后回收该文件所占用的存储空间。 截断文件。允许文件所有属性不变,并删除文件内容,即将其长度设为0并释放其空间。 这6个基本操作可以组合起来执行其他文件操作。例如文件的复制。 按逻辑结构

深入Delphi下的DLL编程

夙愿已清 提交于 2019-11-28 00:24:32
深入Delphi下的DLL编程 作者:岑心 引 言 相信有些计算机知识的朋友都应该听说过“DLL”。尤其是那些使用过windows操作系统的人,都应该有过多次重装系统的“悲惨”经历——无论再怎样小心,没有驱动损坏,没有病毒侵扰,仍然在使用(安装)了一段时间软件后,发现windows系统越来越庞大,操作越来越慢,还不时的出现曾经能使用的软件无法使用的情况,导致最终不得不重装系统。这种情况常常是由于dll文件的大量安装和冲突造成的。这一方面说明DLL的不足,另一方面也说明DLL的重要地位,以至我们无法杜绝它的使用。 DLL(动态链接库,Dynamic Link Library)简单来说是一种可通过调用执行的已编译的代码模块。DLL是windows系统的早期产物。当时的主要目的是为了减少应用程序对内存的使用。只有当某个函数或过程需要被使用时,才从硬盘调用它进入内存,一旦没有程序再调用该DLL了,才将其从内存中清除。光说整个windows系统,就包括了成百上千个dll文件,有些dll文件的功能是比较专业(比如网络、数据库驱动)甚至可以不安装的。假如这些功能全部要包括在一个应用程序(Application program)里,windows将是一个数百M大小的exe文件。这个简单的例子很容易解释DLL的作用,而调用DLL带来的性能损失则变得可被忽略不计。 多个应用程序调用同一个DLL

C++中的C

雨燕双飞 提交于 2019-11-27 20:24:08
前言 因为C++是以C为基础的,所以要用C++编程就必须熟悉C的语法。 C语言的学习可以学习K & R C的《C程序设计语言》 创建函数 Q: 函数原型? A: 标准C/C++有一个特征叫函数原型(function prototyping)。调用函数时,编译器使用原型确保正确传递参数并且正确处理返回值,如果调用函数时程序员出错,编译器就会捕获这个错误。 A: 下面是一个声明函数原型的例子: int translate(float x, float y, float z); 在函数原型中声明变量时,对于同样形式的变量,不能写成 translate(float x, y, z) 这种形式,而必须指明每一个参数的类型。在函数声明中,下面的形式是可以接受的: int translate(float, float, float); 因为在调用函数时,编译器只会检查类型,所以使用标识符只是为了使别人阅读代码时更加清晰。 Q: 空参和可变参数列表? A: 如果有一个空的参数列表,可以在C++中声明这个函数为func(),它告诉编译器,这里有0个参数。应该意识到这只意味着C++中是空参数列表,在C中它意味着不确定的参数数目,这是C语言中的漏洞,因为在这种情况下不能进行类型检查。 A: 在C/C++中,声明func(void)都意味着空的参数列表。 A: 可变的参数列表(variable

【Linux】——压缩算法

我怕爱的太早我们不能终老 提交于 2019-11-27 16:12:28
一、LZ77算法 1、压缩原理 如果文件中有两块内容相同的话,那么只要知道前一块的位置和大小,我们就可以确定后一块的内容。所以我们可以用(两者之间的距离,相同内容的长度)这样一对信息,来替换后一块内容。由于(两者之间的距离,相同内容的长度)这一对信息的大小,小于被替换内容的大小,所以文件得到了压缩。 简单的讲, LZ 算法被认为是字符串匹配的算法。例如:在一段文本中某字符串经常出现,并且可以通过前面文本中出现的字符串指针来表示。当然这个想法的前提是指针应该比字符串本身要短。 例1:在上一段短语“字符串”经常出现,可以将除第一个字符串之外的所有用第一个字符串引用来表示从而节省一些空间。 例2:有一个文件的内容如下 http://jiurl. yeah . net http://jiurl. nease . net 其中有些部分的内容,前面已经出现过了,下面用()括起来的部分就是相同的部分。 http://jiurl. yeah .net ( http://jiurl. )nease( .net ) 我们使用 (两者之间的距离,相同内容的长度) 这样一对信息,来替换后一块内容。 http://jiurl. yeah .net (22,13)nease(23,4) (22,13)中,22为相同内容块与当前位置之间的距离,13为相同内容的长度。 (23,4)中

《系统编程手册》——登陆记账篇

风流意气都作罢 提交于 2019-11-27 15:59:39
登陆记账:linux系统中存在两个文件,utmp文件和wtmp文件用于记录用户登陆与登出系统有关的信息的数据文件; utmp文件:位于/var/run/utmp,维护着当前登陆进系统的用户信息,who(1)之类的命令就会使用utmp文件信息,当用户登陆时,会在utmp文件中维护一种结构体utmpx,用于记录用户的user_id等信息,当该用户退出时,该记录会在utmp文件中删除; wtmp文件:位于/var/log/wtmp,包含所有用户登陆和登出行为的留痕信息以供审计之用,last(1)命令用来显示和过了wtmp文件的内容。 utmp和wtmp文件检索信息api (1)setutxent:将utmp文件的当前位置设置到文件的起始位置。 (2)endutxent:用完文件后调用此函数关闭文件; (3)getutxent/getutxid/getutxline 从utmp文件中读取一个记录并返回一个指针utmpx结构的指针; lastlog:记录每个用户最近一次登陆系统的时间。 来源: https://blog.csdn.net/ty13438189519/article/details/99694832