要求:支持大文件(1M)一次性读入

源代码如下:

#include<stdio.h>
#include<fcntl.h>
#include<stdlib.h>
#include<string.h>
#define rwmode 2 //清屏命令函数
void clear()
{
char clscode[] = {0x1B, 0x5B, 0x48, 0x1B, 0x5B, 0x4A};
printf("%s",clscode);
} //打开文件
int openFile()
{
int fd;
fd=open("/root/wcy/test1/test.txt",rwmode);
if(fd==-1){
printf("打开文件失败,文件路径不正确或者文件不存在!\n");
exit(0);
}else return fd; } //读取文件
void readFile(int fd,char buffer[],int len){ int n=read(fd,buffer,len);
buffer[n]='\0';
printf("文件的内容是:");
printf("%s",buffer);
printf("\n");
} void lseekFile(int fd){ if(lseek(fd,0L,SEEK_END)==-1){
clear();
printf("定位读写文件失败!");
}
else{
char block[512]=" lseek file";
write(fd,block,strlen(block));
printf("定位读写文件成功!\n");
} } int main(){ int fd,n,select;
char buffer[1024*1024];
clear();
while(1){
printf("******************************\n") ;
printf("****** 读写文件系统 ******\n");
printf("**** 1 显示特定文件内容:****\n");
printf("**** 2 定位读写文件内容:****\n");
printf("**** 0 退出本系统 *****\n");
printf("******************************\n");
printf("请输入功能编号:");
scanf("%d",&select);
switch(select){ case 0:
clear();
close(fd);
exit(0);
case 1:
clear();
fd=openFile();
readFile(fd,buffer,sizeof(buffer)-1);
close(fd);
break;
case 2:
clear();
fd=openFile();
lseekFile(fd);
close(fd);
break;
default:
clear();
printf("你输入功能编号错误,请重新输入!\n");
}
}
exit(0);
}

注意:运行此程序的时候,务必有文件"/root/wcy/test1/test.txt",如果没有这个目录下的这个文件,请修改成你的文件所在的目录。

Linux平台下利用系统接口函数按照行读写文件的更多相关文章

  1. Linux环境下利用句柄恢复Oracle误删除的数据文件

    在误删除Oracle的数据文件后,如果未关闭数据库,文件句柄还没有释放,且被删除的数据文件占用的磁盘块未被复写,则可以利用句柄的方式来恢复数据文件.下面模拟恢复过程. (一)环境 OS版本:redha ...

  2. Windows及Linux平台下的计时函数总结

    本文对Windows及Linux平台下常用的计时函数进行总结,包括精度为秒.毫秒.微秒三种精度的各种函数.比如Window平台下特有的Windows API函数GetTickCount().timeG ...

  3. Thrift在Windows及Linux平台下的安装和使用示例

    本文章也同时发表在个人博客Thrift在Windows及Linux平台下的安装和使用示例上. thrift介绍 Apache Thrift 是 Facebook 实现的一种高效的.支持多种编程语言的R ...

  4. 在 Linux 平台下使用 JNI

    引言 Java 的出现给大家开发带来的极大的方便.但是,如果我们有大量原有的经过广泛测试的非 Java 代码,将它们全部用 Java 来重写,恐怕会带来巨大的工作量和长期的测试:如果我们的应用中需要访 ...

  5. linux平台下防火墙iptables原理(转)

    原文地址:http://www.cnblogs.com/ggjucheng/archive/2012/08/19/2646466.html iptables简介 netfilter/iptables( ...

  6. Android平台下利用zxing实现二维码开发

    Android平台下利用zxing实现二维码开发 现在走在大街小巷都能看到二维码,而且最近由于项目需要,所以研究了下二维码开发的东西,开源的二维码扫描库主要有zxing和zbar,zbar在iPos平 ...

  7. Windows 和 Linux 平台下的端口转发工具

    原文地址: http://unmi.cc/windows-linux-port-forwarding/ 这里记录一下我曾经使用过的几个端口转发工具,即端口映射.端口重定向,和 NAT 也是差不多的概念 ...

  8. 【android开发】如何在Linux平台下安装JDK环境

    原文:http://android.eoe.cn/topic/android_sdk Linux平台JDK安装 本文主要描述如何在Linux平台下安装JDK环境.进入网页:http://www.ora ...

  9. linux平台下防火墙iptables原理

    iptables简单介绍 netfilter/iptables(简称为iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它能够取代昂贵的商业 ...

随机推荐

  1. iOS中类方法的作用

    类方法,这意味着你将它发送给类,而不是对象实例. 因为不是发送给一个实例,所以你不能使用任何实例变量,你只能做一些通用性的事情. 实际上类方法只用于两种情况: 1.创建事物,比如创建一个特殊格式的字符 ...

  2. 未能加载文件或程序集“System.WEB.DataVisualization, Version=3.5.0.0, Culture=neutral

    项目打开 提示 如题错误. 最近用VS2010 + .NET Framework3.5SP1开发程序,使用了MsChart,但是部署到服务器的时候提示如下错误: 分析器错误消息: 未能加载文件或程序集 ...

  3. Apache虚拟目录(二)

    一.PHP生命周期 二.轻量级的PHP 轻量级PHP产品由lighttpd,nginx等等 Apache是基于模块化设计的 了解Apache源代码可以从main.c开始 操作系统上跑了APR运行库 m ...

  4. 关于Json处理的两个实例

    <script> var value1="{\"layer_datum\":{\"holdId\":\"dcdm\", ...

  5. 转:Java面试题集(51-70) http://blog.csdn.net/jackfrued/article/details/17403101

    Java面试题集(51-70) Java程序员面试题集(51-70) http://blog.csdn.net/jackfrued/article/details/17403101 摘要:这一部分主要 ...

  6. WABAPI使用

    最近写一个供其他系统调用的接口,决定使用wabapi,以前只是大概了解wabapi是什么东西,没有写过自己的api,从头开始学习. 1.开始创建一个webapi的项目,不得不说VS真的替我们省了好多事 ...

  7. android avoiding-memory-leaks

    android avoiding-memory-leaks Memory Leak是会有多个方面会引起的,比如Drawable, RemoteViews, Receiver, Cursor,Input ...

  8. HDOJ-三部曲一(搜索、数学)-1010-Pots

    Pots Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 131072/65536K (Java/Other) Total Submiss ...

  9. WinFrm窗体的传值方式

    比较简单的方法: 一:1.定义两个窗体 2.在父窗体中加入子窗体的属性 public ChildFrm ChildFrm { get; set; } 3.加载的时候: private void Par ...

  10. Android Material Design Ripple Effect在Android5.0(SDK=21)以下Android版本崩溃问题解决

    Android Material Design Ripple Effect在Android5.0(SDK=21)以下Android版本崩溃问题解决 附录1的Android Ripple Effect水 ...