系统调用-文件访问 创建、打开、关闭、读、写
系统调用-文件访问
本文特色,该文件操作与linux操作系统shell命令对比讲解!
Linux中文件变成可以使用两种方法
1.Linux的系统调用
2.C语言函数的调用
前者是依赖于操作系统的
后者是c库函数一般不会变,在哪系统下都一样。
一、文件的创建
linux操作系统shell创建文件 #mkdir doc1 doc2
int creat(const char *filenme, mode_mode)
* filename 为要创建的文件名
* mode:创建模式
一般创建的是在本文件路径下
如果你之前玩过linux操作系统,你就会明白:chmod 777 filename 的意义
常见的创建属性为:
S_IRUSR 4 可读
S_IWUSR 2 可写
S_IXUSR 1 可执行
S_IXWRU 7 可写读执行
/************具体代码实现****************/
#include<stdio.h>
#include<sys/types.h>
#include<sys/stat.h> //后续要用到exit()函数;
#include<fcntl.h>
void create_file(char *filename)
{
If(creat(filename,0755)<0){ //在这里表示已经执行了系统create函数,小于零表示创建文件不成功; 0755 代表权限一般为root user other访问文件权限
printf(“creat file %s failure\n”,filename)
exit(EXIT_FAILURE);
}else{
printf(“reate file % success!\n”,filename);
}
}
Int main(int argc,char *argv[]){ //argc文件参数,以前真的不知道这是啥意思,现在知道了,参数个数 第二个表示储存名字的数组;
Int i;
If(argc<2){ //表示参数只有一个,在这里只要明白创建文件,至少要两个参数就可以了.
Perror(“you haven’t input the filename,lease tryagain !\n”);
exit (EXIT_FAILURE);
}
For (i=1;i<argc;i++){
Creat_file(argv[i]); //第一个rgv[1]用来放命令.]第二个参数(文件名)放在argv[2],
}
Exit(EXIT_SUCCESS);
)
}
二、系统调用_打开文件
linux操作系统shell文件打开 #cd doc1 #vi less more cat doc1
实际上还是调用了以下函数进行实现
Int open(const char*pathname,int flag,mode_t mode);
参数O_CREATE参数,如果没有文件就独立创建一个文件;
#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
Int main(int argc,char *argv[])
{
Int fd;
If(argc<2){
Puts(“please input the open file pathname!\n”);
Exit(1);
//参数一是文件路径,也就是文件名,第二个打开后可对其操作属性,如果没有就创建一个文件
If(fd=open(argv[1],o_creat,|O_RDWR,0755))<0){
Perror(“open file filure !\n”);
Exit(1);
}
Elae{
Printf(“open file %d sucess!\n”,fd);
}
Close (fd);
Exit(0);
}
}
三、系统调用_关闭
系统打开后会返回一个整数,也就是文件描述符,fd.
Int close(fd);
:wd 退出shell并保存文件
四、系统调用_读
Int read(int fd ,const void *buf,size_tlength)
功能:
从文件描述符fd所指定的文件中读取,也就是说在每次系统读取文件内容的时候要先打开文件,然后根据 fd 处开 始读文件。读多少个自己length 加载到buf所指向的缓冲区中。
返回值为实际的读取的字节数。
Int write(int fd,const void*buf,size_t length)
Fd指向的文件中写入buff中length个字节。
五、系统文件调用—定位
Int lseek(int fd,offset_t offset,int whence)
功能:
将文件读写的指针相对whence移动offset个字节。操作成功,返回指针相对于文件头的为位置。
系统调用—访问判断
有时候我们需要判断文件是否可进行某项操作读写等,这时我们可以使用acces函数。
Int access(const char*pathname,int mode)
Mode: R_ok
W_ok
X_ok
F_ok
返回值,测试成功返回0,不符合返回-1;
转载于:https://blog.51cto.com/godwithme/1907917
系统调用-文件访问 创建、打开、关闭、读、写相关推荐
- 史上最全面的UE4 文件操作,打开,读、写,增、删、改、查
一.前期操作 创建一个C++项目,并且创建一个C++蓝图库函数,并且加入头文件 #include "HAL/PlatformFilemanager.h" #include &quo ...
- golang文件操作:打开关闭文件,带缓冲区的读文件
- C文件访问 introduce
C文件读写.都忘记怎么操作了,记一下.下面这个程序从一个文件读入数据,写入到另一个文件中.stdin与FILE类型是区别:(stdin是指向FILE类型的指针,而FILE是_IO_FILE类型), # ...
- C语言文件操作(一) —— 认识文件的打开/关闭(fopen / fclose)
目录 1.初步理解打开文件 2.打开/关闭文件的函数 (1) fopen函数 (2) fclose 函数 3.fopen函数的使用 1.初步理解打开文件 站在系统的角度,每个文件被打开 ...
- mac 修改文件权限为777可读可写可执行
1,找到要修改的文件夹 2,sudo chmod -R 777 文件夹名. 3,输入管理员密码 chmod是更改文件的权限 chown是改改文件的属主与属组 chgrp只是更改文件的属组. 一.文件权 ...
- Numpy简易教程7——读/写文件
读/写文件 NumPy的文件读/写主要有二进制的文件读/写和文件列表形式的数据读/写两种形式.学会读/写文件是利用NumPy进行数据处理的基础.NumPy提供了若干函数,可以把结果保存到二进制或文本文 ...
- web.config文件访问物理路径_计算机操作系统学习笔记(五):文件管理
五.设备管理 -- 文件管理 文件和进程是 OS 引入的两个重要概念. 5.1 文件的概念 5.1.1 文件概述 概念 文件是具有符号名的,在逻辑上具有完整意义的一组相关信息项的序列 文件(docum ...
- python - 啃书 第九章 文件访问
概述 计算机文件是存储在外部存储器上的数据集合.通常计算机处理的大量数据都是以文件的形式组织存放的,操作系统也是以文件为单位对数据进行管理的. 每个文件都有一个文件名,文件名由基本名和扩展名组成,不同 ...
- Linux目录和文件的创建与删除
Linux下文件&目录创建与删除 这里写目录标题 Linux下文件&目录创建与删除 1.文件的创建 常见的创建文件的几种命令 2.创建目录 3.删除文件及目录的命令:rm 1.文件的创 ...
最新文章
- CSS中margin和padding的区别
- PostgreSQL Frontend/Backend protocol (通信协议)
- 技术女性的是是非非(2)
- 云计算的基础设施服务
- 【Keras】Win10系统 + Anaconda+TensorFlow+Keras 环境搭建教程
- list删除重复元素
- pandas小记:pandas数据输入输出
- js cookie设置,获取,删除
- mysql处理点云_Oracle云时代MySQL HTAP解决方案
- 加速与缓存技术之Varnish
- 软件之美: 易用性设计的目标及准则
- 4款最好的Android设备HTML编辑器
- 超级管理器Android,超级文件管理器官方最新版下载-超级文件管理器 安卓版v5.5.2-PC6安卓网...
- 工业机器人pallet指令_对《工业机器人编程指令详解》的详细介绍
- (php毕业设计)基于php健身俱乐部管理系统源码
- 唐宋边塞诗词中的古灵州
- 【Apache运维基础(4)】Apache的Rewrite攻略(1)
- Qt5把图片如何导出为pdf再到剪切板
- N880E ICS4.0搜索键改锁屏 仅修改一文件的一处
- 如何使用lxml判断网站公告是否更新