读文件:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h> //linux下面的头文件
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
int main(int avg, char* avgs[])
{
if (avg < 2)
{
printf("参数错误\n");
return EXIT_FAILURE;
}
char s[] = "abc.txt";
int fd = open(avgs[1], O_RDONLY);
if (fd == -1)
{
printf("error :%s\n", strerror(errno));
}
else
{
printf("fd=%d\n", fd);
char buf[100];
memset(buf, 0, sizeof(buf));
//循环读取文件
while (read(fd, buf, sizeof(buf)-1)>0)
{
printf("buf:%s\n", buf);
memset(buf, 0, sizeof(buf));
}
close(fd);
}
return 0;
}

  

写文件:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h> //linux下面的头文件
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
int main(int avg, char* avgs[])
{
if (avg < 2)
{
printf("参数错误\n");
return EXIT_FAILURE;
}
int fd = open(avgs[1], O_RDWR | O_APPEND);
if (fd==-1)
{
printf("file open error : %s \n", strerror(errno));
return EXIT_FAILURE;
}
else
{
printf("fd= %d\n", fd);
char buf[100];
memset(buf, 0, sizeof(buf));
strcpy(buf, "RtesttesttestR");
int i = write(fd, buf, strlen(buf));
close(fd);
}
return 0;
}

  

获取文件详细信息:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h> //linux下面的头文件
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
int main(int avg, char* avgs[])
{
if (avg < 2)
{
printf("参数错误\n");
return EXIT_FAILURE;
}
int fd = open(avgs[1], O_RDWR | O_APPEND);
if (fd==-1)
{
printf("file open error : %s \n", strerror(errno));
return EXIT_FAILURE;
}
else
{
struct stat buf;
//获取文件信息
fstat(fd, &buf);
//判断文件是否为标准文件
if (S_ISREG(buf.st_mode))
{
printf("%s is a char file \n", avgs[1]);
}
//判断文件是否为目录
if (S_ISDIR(buf.st_mode))
{
printf("%s is a directory \n", avgs[1]);
}
//打印文件的大小
printf("%s file size is %d\n",avgs[1], buf.st_size);
}
return 0;
}

  

c语言读文件

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int avg, char* avgs[])
{
if (avg < 2)
{
printf("avg error\n");
return EXIT_FAILURE;
}
FILE* fp = fopen(avgs[1], "r");
if (fp == NULL)
{
printf("file open error");
return EXIT_FAILURE;
}
char buf[10];
memset(buf, 0, sizeof(buf)); size_t rc = 0;
while (1)
{
//fr返回读了几条记录数(fread第三个参数表示读多少条记录)
size_t fr = fread(buf, 1, 10, fp);
rc += fr;
if (fr == 0)
{
break;
}
printf("%s \n", buf);
memset(buf, 0, sizeof(buf));
}
printf("size:%d\n", rc);
return EXIT_SUCCESS;
}

 

c语言写文件

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//写文件
int main(int avg, char* avgs[])
{
if (avg < 2)
{
printf("avg error !\n");
return EXIT_FAILURE;
}
FILE* fp = fopen(avgs[1], "a+");
if (fp == NULL)
{
printf("file open error!\n");
return EXIT_FAILURE;
}
else
{
char buf[100];
memset(buf, 0, sizeof(buf));
strcpy(buf, "hello world\n");
fwrite(buf, strlen(buf), 1, fp);
fclose(fp);
}
getchar();
}

  

二进制文件的读和写操作

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
typedef struct _Person {
char name[20];
int age;
}Person;
//二进制文件读操作
int main(int avg, char* avgs[])
{
if (avg < 2)
{
printf("avg count error!\n");
return EXIT_SUCCESS;
}
FILE* fp = fopen(avgs[1], "r");
if (printf == NULL)
{
printf("file open error %s\n", strerror(errno));
}
else
{
Person parray[10];
memset(&parray, 0, sizeof(Person));
while (fread(&parray[0],sizeof(Person),1,fp))
{
printf("age:%d,name:%s\n", parray[0].age, parray[0].name);
}
fclose(fp);
}
return EXIT_SUCCESS;
}
//二进制文件写操作
int main(int avg, char* avgs[])
{
if (avg<2)
{
printf("avg count error!\n");
return EXIT_SUCCESS;
}
FILE* fp = fopen(avgs[1], "w");
if (printf==NULL)
{
printf("file open error %s\n", strerror(errno));
}
else
{
Person parray[10];
parray[0].age = 0;
strcpy(parray[0].name, "caoruipeng");
parray[1].age = 1;
strcpy(parray[1].name, "jiaruixin"); fwrite(&parray, sizeof(Person), 2, fp);
fclose(fp);
}
return EXIT_SUCCESS;
}

  

文件目录读写

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <time.h>
#include <dirent.h>
int main(int arg, char* args[])
{
DIR* dp;
struct dirent* dirp;
dp = opendir(args[1]);
if (dp == NULL)
{
printf("open dir error %s\n", strerror(errno));
return 0;
}
while ((dirp = readdir(dp)) != NULL)
{
printf("name:%s\n", dirp->d_name);
}
closedir(dp);
}

  

Linux文件读写笔记的更多相关文章

  1. Linux文件读写机制及优化方式

    导读 Linux是一个可控性强的,安全高效的操作系统.本文只讨论Linux下文件的读写机制,不涉及不同读取方式如read,fread,cin等的对比,这些读取方式本质上都是调用系统api read,只 ...

  2. (转)linux文件读写的流程

    转自http://hi.baidu.com/_kouu/item/4e9db87580328244ef1e53d0 在<linux内核虚拟文件系统浅析>这篇文章中,我们看到文件是如何被打开 ...

  3. Linux 文件读写操作与磁盘挂载

    文件读写 [文件描述符] Linux下,通常通过open打开一个文件,它然后返回给我们一个整数,通过这个整数便可以操作文件,这个整数我们称文件描述符(fd).对应被打开的文件,它也是一种系统资源,那么 ...

  4. python的文件读写笔记

    读写文件是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘, ...

  5. Linux 文件类型笔记

    在UNIX中一切都是文件https://ph7spot.com/musings/in-unix-everything-is-a-file在UNIX中,一切都是字节流 ==== linux系统的文件类型 ...

  6. Linux文件权限-笔记

    文件权限共10个字符,第一个字符表示该文件是[文件夹]或[文件]——如果是字符“d"则表示该文件是文件夹:如果是字符“-”则表示是文件. 后九个字符,三个一组,共三组,分别表示[所有者权限] ...

  7. Linux文件操作 笔记

    fstat stat lstat 原型 #include <unistd.h> #include <sys/stat.h> #include <sys/types.h&g ...

  8. linux文件读写 文件锁、select、poll【转】

    本文转载自:http://blog.csdn.net/fansongy/article/details/6853395 一.文件锁 文件锁用于多个用户共同使用或操作同一个文件.有读锁的时候可以再加读锁 ...

  9. LINUX - 文件读写缓存

    遇到一个进程core掉后日志打印不出来的问题: 参考如下: [引用] 只有正常退出,才能做到flush.否则将写失败. 之后有百度了下中文资料,发现同样的结论. "fflush库函数的作用是 ...

随机推荐

  1. LeetCode 516——最长回文子序列

    1. 题目 2. 解答 与最长回文子串类似,我们可以用动态规划来求解这个问题,只不过这里的子序列可以不连续.我们定义状态 state[i][j] 表示子串 s[i, j] 的最长回文子序列长度,那么状 ...

  2. viewpager标签栏之PagerTab

    import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint; impor ...

  3. 【flask】表单-上传文件

    依赖: flask-wtf upload_case.html <!DOCTYPE html> <html lang="en"> <head> & ...

  4. Linq之旅:Linq入门详解(Linq to Objects)(转)

    http://www.cnblogs.com/heyuquan/p/Linq-to-Objects.html 示例代码下载:Linq之旅:Linq入门详解(Linq to Objects) 本博文详细 ...

  5. JavaScript权威指南(第六版) 初读笔记

    JavaScript的5种原始类型:undefined.null.布尔值.数字和字符串. JavaScript中两个非常重要的数据类型是对象和数组. 通过方括号定义数组元素和通过花括号定义对象属性名和 ...

  6. PPT添加节

    如果你要做很多PPT,而又不想把PPT分到很多个文件里,你可以在PPT中添加节(Section).这样你的PPT就像书本一样,一章一章的,非常方便.

  7. python003

    一.列表 1.列表是有序的,列表的元素可以修改# list 类li=[1,22,'ss','zp',['qqqq',111,33,['eeeeeeeee'],'ddddd',True]] #通过lis ...

  8. Python学习之UDP版socket&SocketServer

    7.6 基于UDP的socket 无连接的,不必与对方建立连接,而是直接把数据发送给对方: 适用于一次传输销量数据结构,可靠性不高的应用环境,因为其传输速率快 # 服务端 import socket ...

  9. stringbuffer.tostring引发的 Java heap space

    今天在测试“生成报告“功能时,出现了这个问题,java抛出java.lang.OutOfMemoryError: Java heap space: 由于开发使用的tomcat是统一配置的,而且其他地方 ...

  10. 《React+Redux前端开发实战》笔记3:基于Webpack构建的Hello World案例(下)

    2.使用React编码 下面正式开始使用React来编写前端代码. (1)npm安装react和react-dom: npm install react react-dom -S (2)用下面代码替换 ...