Linux C 文件与目录3 文件读写
文件读写
文件读写是指从文件中读出信息或将信息写入到文件中。Linux文件读取可使用read函数来实现的,文件写入可使用write函数来实现。在进行文件写入的操作时,只是在文件的缓冲区中操作,可能没有立即写入到文件中。需要使用sync或fsync函数将缓冲区的数据写入到文件中。
文件写操作:
函数write可以把一个字符串写入到一个已经打开的文件中,这个函数的使用方法如下:
ssize_t write (int fd , void *buf , size_t count);
参数:
fd:已经打开文件的文件编号。
buf:需要写入的字符串。
count:一个整数型,需要写入的字符个数。表示需要写入内容的字节的数目。
返回值:
如果写入成功,write函数会返回实际写入的字节数。发生错误时则返回-1,可以用errno来捕获发生的错误。
[Linux@centos-64-min exercise]$ cat write.c
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
#include <errno.h>
int main(void)
{
int fd ;
char path[] = "txt1.txt";
char s[]="hello ...";
extern int errno;
fd = open(path , O_WRONLY|O_CREAT|O_TRUNC , 0766);
if(fd != -1)
{
printf("opened file %s .\n" , path);
}
else
{
printf("can't open file %s.\n" , path);
printf("errno: %d\n" , errno); //打印错误编号
printf("ERR : %s\n" , strerror(errno)); //打印错误编号对应的信息。
}
write(fd , s , sizeof(s));
close(fd);
printf("Done\n");
return 0;
}
[Linux@centos-64-min exercise]$ ./write
opened file txt1.txt .
Done
读取文件函数read
函数read可以从一个打开的文件中读取字符串。
ssize_t read(int fd , void *buf , size_t count);
参数:fd:表示已经打开的文件的编号。
buf:是个空指针,读取的内容会返回到这个指针指向的字符串。
count:表示需要读取的字符的个数。
返回值:返回读取到字符的个数。如果返回值为0,表示已经达到文件末尾或文件中没有内容可读。
fd = open(path , O_RDONLY);
if(fd != -1)
{
printf("opened file %s .\n" , path);
}
else
{
printf("can't open file %s.\n" , path);
printf("errno: %d\n" , errno);
printf("ERR : %s\n" , strerror(errno));
}
if((size = read(fd , str , sizeof(str))) < 0)
{
printf("ERR: %s" , strerror(size)); //如果有错,通过错误编号打印错误消息。
}
else
{
printf("%s\n" , str);
printf("%d\n" , size);
}
close(fd);
return 0;
}
result:
opened file txt1.txt .
hello ...
10
Linux C 文件与目录3 文件读写的更多相关文章
- linux重要的标准目录和文件
linux重要的标准目录和文件 / 根目录,所有其他文件在根文件系统的子目录下 /bin 基本命令的二进制文件,存放linux下常用的命令和工具 /boot 引导加载器的固有文件,linux就是从这里 ...
- Linux目录和文件——查询目录和文件的命令
Linux目录和文件——查询目录和文件的命令 摘要:本文主要学习了在Linux系统中是如何查询目录和文件的. which命令 which命令是根据PATH环境变量设置的路径,去搜索执行文件. 基本语法 ...
- Linux目录和文件——管理目录和文件的命令
Linux目录和文件——管理目录和文件的命令 摘要:本文主要学习了Linux系统中关于目录和文件的操作. cd命令 cd命令用来切换工作目录,是Change Directory的缩写. 基本语法 cd ...
- 第十九章 Python os模块,pathlib 判断文件是目录还是文件
OS模块 os.path.abspath() :返回path规范化的绝对路径 import sys import os BASE_DIR = os.path.dirname(os.path.dirna ...
- [转]C# FileSystemWatcher监控指定文件或目录的文件的创建、删除、改动、重命名等活动
觉得这个很常用..比如一些软件. http://www.rabbit8.cn/DoNet/407.html FileSystemWatcher控件主要功能: 监控指定文件或目录的文件的创建.删 ...
- 【转载】C#递归删除文件夹目录及文件
在C#文件操作过程中,有时候需要删除相应目录,如果文件夹中含有其他文件夹或者文件,也需要一并进行删除,此时可能就需要使用递归来删除文件夹目录以及文件,递归过程中,如果遍历的对象是文件夹,则删除文件夹, ...
- linux常用命令之--目录与文件的操作命令
1.linux的目录与文件的增.删.改.复制 pwd:用于显示当前所在的目录 ls:用于显示指定目录下的内容 其命令格式如下: ls [-option] [file] 常用参数: -l:显示文件和目录 ...
- Window Linux下实现指定目录内文件变更的监控方法
转自:http://qbaok.blog.163.com/blog/static/10129265201112302014782/ 对于监控指定目录内文件变更,window 系统提供了两个未公开API ...
- Linux C 文件与目录2 文件的打开与关闭
文件的打开与关闭 open和close 文件的打开指的是从磁盘中找到一个文件,返回一个整形的打开文件顺序的编号.打开的文件处于可读.可写状态.文件的关闭指的是释放打开的文件,是文件处于不可读写的状态. ...
- Linux常用命令,查看树形结构、删除目录(文件夹)、创建文件、删除文件或目录、复制文件或目录(文件夹)、移动、查看文件内容、权限操作
5.查看树结构(tree) 通常情况下系统未安装该命令,需要yum install -y tree安装 直接使⽤tree显示深度太多,⼀般会使⽤ -L选项⼿⼯设定⽬录深度 格式:tree -L n [ ...
随机推荐
- jquery 相关class属性的操作
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 【.NET】单例模式标准写法
public sealed class Singleton { private static Singleton instance = null; static readonly object pad ...
- RAW格式
一.什么是RAW文件?RAW文件主要是一种记录了数码相机传感器的原始信息,同时伴随着一些由相机所产生的一些元数据(metadata,诸如IS0的设置.快门速度.光圈值.白平衡等)的文件.不同的相机制造 ...
- android studio首次运行出错
转载2015-10-24 16:28:15 标签:androidstudioandroidstudio无法启androidstudio1.4无法 Internal error. Please repo ...
- oracle 创建修改 job
---停止job 25是建立的job begin dbms_job.broken(,true); commit; end; --启动job begin dbms_job.run(); commit; ...
- Unieap3.5-前台js判断表单必录
//用户信息字段检查 var custFrm=unieap.byId('custFrm'); var isValid=custFrm.validate(true); if(!isValid){ ret ...
- javaSE第十二天
第十二天 64 1. Scanner的使用(了解) 64 (1)在JDK5以后出现的用于键盘录入数据的类. 64 (2)构造方法: 64 (4)要掌握的两个方法 65 ( ...
- 搭建高性能计算环境(五)、应用软件的安装之Amber12
应用软件通常安装在/opt目录下,这样系统中的各个用户都能方便使用,下面的软件都将安装到/opt目录. 1,上传需要的软件包Amber12.tar.gz.AmberTools13.tar.bz2.Am ...
- windows 8.1 MessageDialog
private Popup p; private void Button_Click(object sender, RoutedEventArgs e) { p=new Popup(); Denglu ...
- [leetcode]_Integer to Roman
题目:对应之前那道将罗马数字转换整型数字的题目.反过来. 思路:刚开始做的时候,想着用程序进行判断,复杂的要死.网络了别人代码,非常清晰. 代码: 1 public String intToRoman ...