要求:支持大文件(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. Hadoop 重启各个节点

    对于datanode可以在master中配置,然后在maste启动的时候,一并去启动这些节点 .对于死掉的节点,也可以通过以下命令启动 .重启挂掉的节点进入到 挂掉的机器 bin/hadoop-dae ...

  2. python3使用requests发闪存

    闪存ing.cnblogs.com是博客园类似推特.饭否的服务, 我写了以下程序可以完成发闪存的操作,目的是顺便练习使用requests库. requests是一个python 轻量的http客户端库 ...

  3. 2014年3月份第1周51Aspx源码发布详情

    Graphics创建饼图示例源码  2014-3-7 [VS2010]源码描述:这个程序是一个在c#中使用图形类用来创建饼图,此程序是用Graphics 类的DrawPie() 和 FillPie() ...

  4. HYSBZ 1858 线段树 区间合并

    //Accepted 14560 KB 1532 ms //线段树 区间合并 /* 0 a b 把[a, b]区间内的所有数全变成0 1 a b 把[a, b]区间内的所有数全变成1 2 a b 把[ ...

  5. C语言学习笔记之成员数组和指针

    成员数组和指针是我们c语言中一个非常重要的知识点,记得以前在大学时老师一直要我们做这类的练习了,但是最的还是忘记了,今天来恶补一下.     单看这文章的标题,你可能会觉得好像没什么意思.你先别下这个 ...

  6. js实现图片预显示

    html页面代码 <div id="localImag" style="display:none"><img  id="previe ...

  7. ios openURL的使用(调用系统电话、浏览器、地图、邮件等)

    Safari Any URL starting with http:// which does not point to maps.google.com or www.youtube.com is s ...

  8. HDU 4856

    http://acm.hdu.edu.cn/showproblem.php?pid=4856 西安邀请赛的一道题,这道题我们当时在现场最后1h才发现时状态压缩dp,惊险写出 现在回头想发现当时有点呆, ...

  9. [转]BEHAVOUR TREE

    自从开博以来,每天都会关心一下博客的访问情况,看到一些朋友的订阅或者访问,不胜欣喜,也促使我去写一些更好的博文,来和大家分享和交流,从访问 统计来看,有相当一部分是来自于搜索引擎的流量,关键字以“行为 ...

  10. IFrame 获取内容

    试试: iframe.contentwindow.document.documentElement.innerHTML   document.getElementById("MyIFrame ...