Linux文件

简介: Linux文件

1、创建,打开文件

1.1、API
1.int open(const char*pathname,int flags)
2.int open(const char*pathname,int flags,mode_t mode)
3.int creat(const char*pathname,mode_t mode)
返回值:文件描述符(确定是哪个文件)(返回一个非负数,-1表示没有此文件)
参数1:文件指针路径+文件名(./文件名)
参数2:打开方式(读O_RDONLY,写O_WRONLY,可读可写O_RDWR)(创建文件要和前面3个与,并且要写第三个参数O_CREAT)
参数3:说明该文件存取许可权限rw(可读可写0600)

1.2、补充
参数3
0:
6: r:4 w:2 x:1
0:同组
0:其他组
参数2:与|
O_CREAT:创建文件,要有参数3的许可权限
O_EXCL:与上面搭配用,如果文件存在则返回-1
O_APPEND:打开文件光标指向文件尾
O_TRUNC:清楚文件内容
3.creac函数
参数1:创建的文件名(/文件名,/绝对路径,./当前路径)
参数2:模式权限
S_IRUSR:可读 4
S_IWUSR:可写 2
S_IXUSR:可执行 1
S_IRWXU:可读可写可执行 7

2、读写文件

2.1、API
1.ssize_t write(int fd,const void* buf,size_t count)
2.ssize_t read(int fd,void* buf,size_t count)
返回值:读写的字节(失败返回-1)
参数1:文件描述符(操作哪个文件)
参数2:写什么进去,指针类型; 读到哪里,指针类型
参数3:写几个字节,用sizeof和strlen算

3、光标

3.1、API
1.off_t lseek(int fd,off_t offset,int whence)
返回值:针对文件头偏移多少字节(光标指向尾,可以返回文件大小)
参数1:文件描述符
参数2:偏移量,0不偏移,负数往前,正往后
参数3:光标移动到位置,SEEK_SET头,SEEK_END尾,SEEK_CUR当前位置
注:一定注意光标位置,读写都会使位置变化

4、操作文件原理

1.UNIX shell使用文件描述符0与进程标准输入结合,1与输出结合,2与错误输出结合
STDIN_FILEND:0
STDOUT_FILEND:1
STDERR_FILEND:2
例:int r=read(0,buf,5)
write(1,buf,strlen®)
2.静态文件和动态文件
静态:硬盘上存储的
动态:从硬盘上读取到内存,linux内核结构体
操作的是内存,也就是动态文件
操作完成后close,动态文件就更新到静态文件里,最终改变静态文件
3.为什么不直接操作静态文件
静态文件是以块存放的,操作不灵活
内存是按字节操作的,可以随机操作很灵活

5、c库函数

FILE*fp
1.fopen,fwrite,fread,fseek,fclose
fwrite参数:写什么指针类型,写多少字节,写多少次,fp
2.写读返回值:写返回写多少次,读返回读了几个字节
fopen返回地址,打开失败返回NULL
fgetc,fputc,feof
写,读,判断是否到文件尾
注:写读一个一个写读用for
feof返回值:没到尾返回0,到尾返回非0

目录
相关文章
|
2月前
|
Linux 数据安全/隐私保护 Windows
命令方式:window向linux传文件
【10月更文挑战第6天】本文介绍了如何在Linux系统中通过命令`ip a`获取IP地址,并在Windows系统下使用CMD命令行工具和SCP命令实现文件传输。示例展示了如何将D盘中的`mm.jar`文件上传至IP地址为192.168.163.122的Linux系统的/up/目录下,最后在Linux系统中确认文件传输结果。
281 65
|
2月前
|
运维 安全 Linux
Linux中传输文件文件夹的10个scp命令
【10月更文挑战第18天】本文详细介绍了10种利用scp命令在Linux系统中进行文件传输的方法,涵盖基础文件传输、使用密钥认证、复制整个目录、从远程主机复制文件、同时传输多个文件和目录、保持文件权限、跨多台远程主机传输、指定端口及显示传输进度等场景,旨在帮助用户在不同情况下高效安全地完成文件传输任务。
340 5
|
2月前
|
Linux Shell 数据库
Linux文件查找新姿势:总有一种你没见过
【10月更文挑战第18天】文件查找是Linux用户提升工作效率的重要技能。本文介绍了几种实用的文件查找方法,包括基础的`find`命令、快速的`locate`和`mlocate`、高效的`fd`工具、以及结合`grep`和`rg`进行内容搜索。此外,还提供了编写Shell脚本和使用图形界面工具的建议,帮助你更灵活地管理文件。
85 3
|
2月前
|
Linux Shell
Linux系统文件默认权限
Linux系统文件默认权限
56 2
|
12天前
|
Linux Shell 网络安全
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
46 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
|
1月前
|
Linux 开发工具 Perl
在Linux中,有一个文件,如何删除包含“www“字样的字符?
在Linux中,如果你想删除一个文件中包含特定字样(如“www”)的所有字符或行,你可以使用多种文本处理工具来实现。以下是一些常见的方法:
41 5
|
1月前
|
安全 Linux 数据安全/隐私保护
在 Linux 系统中,查找文件所有者是系统管理和安全审计的重要技能。
在 Linux 系统中,查找文件所有者是系统管理和安全审计的重要技能。本文介绍了使用 `ls -l` 和 `stat` 命令查找文件所有者的基本方法,以及通过文件路径、通配符和结合其他命令的高级技巧。还提供了实际案例分析和注意事项,帮助读者更好地掌握这一操作。
52 6
|
1月前
|
Linux
在 Linux 系统中,`find` 命令是一个强大的文件查找工具
在 Linux 系统中,`find` 命令是一个强大的文件查找工具。本文详细介绍了 `find` 命令的基本语法、常用选项和具体应用示例,帮助用户快速掌握如何根据文件名、类型、大小、修改时间等条件查找文件,并展示了如何结合逻辑运算符、正则表达式和排除特定目录等高级用法。
101 6
|
1月前
|
监控 Linux Perl
Linux 命令小技巧:显示文件指定行的内容
在 Linux 系统中,处理文本文件是一项常见任务。本文介绍了如何使用 head、tail、sed 和 awk 等命令快速显示文件中的指定行内容,帮助你高效处理文本文件。通过实际应用场景和案例分析,展示了这些命令在代码审查、日志分析和文本处理中的具体用途。同时,还提供了注意事项和技巧,帮助你更好地掌握这些命令。
101 4
|
2月前
|
Linux 开发工具 数据安全/隐私保护
linux异常一:feng 不在 sudoers 文件中,此事将被报告。yum提示Another app is currently holding the yum lock; waiting for
这篇文章介绍了在CentOS 7系统中安装Docker时遇到的两个常见问题及其解决方法:用户不在sudoers文件中导致权限不足,以及yum被锁定的问题。
48 2
linux异常一:feng 不在 sudoers 文件中,此事将被报告。yum提示Another app is currently holding the yum lock; waiting for