Linux c读取任意大小文件的所有数据

代码如下,执行完之后被分配的动态内存的指针会保存到result中。由于是动态分配内存,读取内容不再使用之后注意用free 释放掉,如不明白,请多搜索以下动态内存分配的资料。

#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <string.h>
#include <fcntl.h>

//从文件读取所有数据,并且保存到result中
//参数二:文件的位置
//返回值:成功返回1,失败返回0
int read_data(char **result,char *fileName)
{
    struct stat fileInfo;
    FILE *filePointer;
    char *fileDate;

if((fileName==NULL)||(result==NULL))
    {
        return 0;
    }

if(!(filePointer=fopen(fileName,"rb ")))
    {return 0;}

stat(fileName,&fileInfo);

fileDate=malloc(sizeof(char)*(fileInfo.st_size+1));

fread(fileDate,sizeof(char),fileInfo.st_size,filePointer);

fclose(filePointer);

fileDate[fileInfo.st_size]=0;

printf("\n%s\n",fileDate);
    *result=fileDate;
    return 1;

}

时间: 2024-08-23 22:32:47

Linux c读取任意大小文件的所有数据的相关文章

在服务端中,读取properties资源文件中的数据

1.获取到资源的路径 2.读取数据 //properties文件对象 Properties properties = new Properties(); //通过HttpServletRequest request 对象 获取服务上下文环境中目标文件的真实路径 String realPath = request.getServletContext().getRealPath("/deom.properties"); //加载目标文件的数据 properties.load(new Fil

matlab读取.mat格式文件

matlab读取.mat格式文件 13.1 数据基本操作 本节介绍基本的数据操作,包括工作区的保存.导入和文件打开.13.1.1 文件的存储 MATLAB支持工作区的保存.用户可以将工作区或工作区中的变量以文件的形式保存,以备在需要时再次导入.保存工作区可以通过菜单进行,也可以通过命令窗口进行. 1. 保存整个工作区 选择File菜单中的Save Workspace As…命令,或者单击工作区浏览器工具栏中的Save,可以将工作区中的变量保存为MAT文件. 2. 保存工作区中的变量 在工作区浏览

Linux x64 -- 内核程序(驱动程序)读取任意进程数据实现

四级页表结构 现在的64位Linux系统中,并没有使用全部的64位地址空间,而是使用其低48位,高16位并没有使用. 其中 39至47这9位用于索引PGD(page global directory),其中读取的值是PUD(page upper directory)的地址 30至38这9位用于索引PUD以获取PMD(page middle directory)的地址 21至29这9位用于索引PMD以获取PTE(the lowest level page table)的地址 12至20这9位用于索

Linux下读取Ini文件类

Linux下读取Ini文件类 最近项目上有需要读取Ini文件 所谓Ini文件也就是文本文档 并且以 //注释1 /*注释2 [Section] Key1=aaa Key2=bbb 这种形式存在的文档 自己编写了一个类  比较使用 简单 可以跨平台读写INI文件 头文件Ini.h #include <map> #include <string> using namespace std; #define CONFIGLEN 256 enum INI_RES { INI_SUCCESS,

Linux下查看文件大小、文件占磁盘大小等详解(du 和df )使用命令

一.查看文件占磁盘大小一般使用du或df命令 df命令:用于显示磁盘分区上的可使用的磁盘空间.默认显示单位为KB.可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息. du命令:查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的.  df命令:显示磁盘分区上的可使用的磁盘空间. df[选项][参数] 选项: 1 -a或--all:包含全部的文件系统: 2 --block-size=<区块大小>:以指定的区块大

Ubuntu Linux 批量修改图片大小以及文件重命名

0x00 本文属于随笔, 仅供作者学习记录. 0x01 批量修改图片大小: [email protected]:~/$ find ./ -name '*.jpg' -exec convert -resize 220X520! {} {} \; 备注: 上述命令中, find 路径 -name 匹配.jpg后缀的文件 -exec 对find结果执行convert命令 后面是convert参数, 如果没有安装convert, sudo apt-get install convert安装即可. -re

windows和linux下读取文件乱码的终极解决办法!

乱码是个很恶心的问题. windows和linux读取txt文件,一旦读取了,编码发生改变,就无法再还原了,只有重启项目. 网上有很多方法都是读取文件头,方法很好,但是亲测都不能用(右移8位判断0xff的,取3个字节的-1,-2的,大体上网上最多就这两种). 后来偶然发现一个方法,CharsetPrinter. 这个方法需要引入jar包,非常好用. public static String guessEncoding(String filename) { try { CharsetPrinter

SpringBoot读取Linux服务器某路径下文件\读取项目Resource下文件

// SpringBoot读取Linux服务器某路径下文件 public String messageToRouted() { File file = null; try { file = ResourceUtils.getFile("/home/admin/logs/test/routed.txt"); // 获取文件输入流 InputStream inputStream = new FileInputStream(file); List<String> fileList

linux c使用socket进行http 通信,并接收任意大小的http响应(三)

使用socket进行http通信的时候,浏览器返回的响应经常不是固定长度的,有时候很大,有些时候又非常小,十分讨厌.如果仅仅只是为了接收一小段信息,设置一个十分大的缓存,这样又会十分浪费.而且经常更改缓存大小的话,也不太好. 为了能够接收任意大小的响应,我程序的流程大概是这样子的: (1)将SOCKET接收的信息保存到一个动态分配内存的链表里.链表每个节点存储有固定字节大小的HTTP响应,每当一个节点存储满,就继续添加一个新的节点继续缓存: (2)接收信息结束后,将存储在链表当中的HTTP响应全