C 文件操作 简单代码
2017-02-23 23:34
218 查看
分别是栈上分配内存 和 堆上分配内存
有时候我们如果遇到 频繁调用这个函数 要不停的去动态分配内存很麻烦 还得手动释放
可以考虑用static buf[BUF_LEN] 在函数内部 或者是用全局变量数组 但是问题又来了 如果你的程序是守护进程 必定会一直占用内存
或者你可以考虑全局变量来动态申请内存 用完了就释放
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#define EXIT exit(-1)
#define BUF_LEN (512)
void readFile(const char* fileName,char* out)
{
FILE* fp;
if(NULL == fileName) {
printf("error fileName.\n");
EXIT;
}
if(0 != (access(fileName,F_OK)))
{
printf("this file is not exsit.\n");
EXIT;
}
if(NULL == (fp= fopen(fileName,"r"))) {
printf("open fileName fail.\n");
EXIT;
}
if(fread(out,1,BUF_LEN,fp) < 1) {
printf("read %s file error.\n",fileName);
EXIT;
}
}
int main()
{
char out[BUF_LEN]={0};
char* buf;
/* examples 1 */
readFile("/opt/test",out);
printf("%s\n",out);
/* examples 2 */
buf = (char*)malloc(sizeof(char)*BUF_LEN);
memset(buf,'\0',sizeof(char)*BUF_LEN);
readFile("/opt/test",buf);
printf("%s\n",buf);
free(buf);
return 0;
}
有时候我们如果遇到 频繁调用这个函数 要不停的去动态分配内存很麻烦 还得手动释放
可以考虑用static buf[BUF_LEN] 在函数内部 或者是用全局变量数组 但是问题又来了 如果你的程序是守护进程 必定会一直占用内存
或者你可以考虑全局变量来动态申请内存 用完了就释放
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#define EXIT exit(-1)
#define BUF_LEN (512)
void readFile(const char* fileName,char* out)
{
FILE* fp;
if(NULL == fileName) {
printf("error fileName.\n");
EXIT;
}
if(0 != (access(fileName,F_OK)))
{
printf("this file is not exsit.\n");
EXIT;
}
if(NULL == (fp= fopen(fileName,"r"))) {
printf("open fileName fail.\n");
EXIT;
}
if(fread(out,1,BUF_LEN,fp) < 1) {
printf("read %s file error.\n",fileName);
EXIT;
}
}
int main()
{
char out[BUF_LEN]={0};
char* buf;
/* examples 1 */
readFile("/opt/test",out);
printf("%s\n",out);
/* examples 2 */
buf = (char*)malloc(sizeof(char)*BUF_LEN);
memset(buf,'\0',sizeof(char)*BUF_LEN);
readFile("/opt/test",buf);
printf("%s\n",buf);
free(buf);
return 0;
}
相关文章推荐
- html制作简单框架网页二 实现自己的影音驿站 操作步骤及源文件下载 (可播放mp4、avi、mpg、asx、swf各种文件的视频播放代码)
- 简单的php操作word文件实现代码
- C#文件简单操作(文件流)代码解释见图
- 从码云把之前的代码git push 回IDEA 对IDEA里的文件进行简单操作
- JAVA 实现多文件同时操作 程序代码
- 文件操作delphi代码
- ASP数据库和文件操作代码合集(与以前无改动,只是集中一下)
- 简单的PHP文件上传代码
- 用C#代码生成一个简单的PDF文件
- 一个WinForm记事本程序(包含主/下拉/弹出菜单/打开文件/保存文件/打印/页面设置/字体/颜色对话框/剪切版操作等等控件用法以及记事本菜单事件/按键事件的具体代码)
- 网址备忘录(VB,文件操作)代码
- 简单封装的一个文件操作的类【原创】
- 简单的VC 操作XML 文件的的方法
- c#简单数据库插入操作代码
- c#简单数据库操作代码
- [DLL]模仿C++中INI文件代码操作习惯的XML配置文件类
- 用简单的代码来实现文件上传
- INI文件格式及其操作代码
- 简单的文件操作
- 用简单的代码来实现文件上传