linux下的文件操作2

librealsense2 camera.so: undefined symbol:ZN2cV3MatC1EV解决笔记记录 先参考的这个兄弟的办法虽然没解决但是提供了大方向感谢; realsenseD400系列相机报错:undefined symbol: _ZN2cv3MatC1EiiiRKNS_7Scalar_IdEE解决方案 后解决办法参考 No GPU usage on jetson xavier NX · Issue #2326 · IntelRealSense/realsense-ros · GitHubOpenCV_DIR" to a directory containing one of the above f 阅读详情

linux下的文件操作2

之前讲了系统调用和库函数在文件操作方面的联系和区别,并以打开文件举了几个例子。打开文件后当然不是为了关闭文件,而是为了读取或者写入文件,所以现在整理一下文件的读写。

系统调用提供的文件读写函数有:read, write 等,但是我们不用它们,麻烦,一般都使用库函数提供的文件读写函数(这里是C的库函数,其他的不熟)。

先讲读取文件。库函数提供的文件读取函数大致能分三个种类:一次读取一个字符的;一次读取一行的;格式化读取的。

一次读取一个字符的函数有:

int fgetc(FILE *stream);
int getc(FILE *stream);
int getchar();
fgetc从文件流中读取一个字符,读取类型为unsigned char,然后fgetc内部将unsigned char转换成int返回,如果读取错误或者已经到达文件尾,返回EOF,EOF是个宏定义,值是-1,使用时最好用EOF,一来可读性好,二来直接用-1哪天宏改了就死的难看了。其实这里定义宏就是为了避免在文件中使用常数,好处大大的。

getc用法和fgetc一样,但是是优化过的fgetc版本,所以使用这个函数可以提高点效率,但是getc可能定义为一个宏,所以把函数名当作函数指针使用的时候,这个不能保证正确性,最好用fgetc。

getchar()相当于fgetc(stdin),从标准输入中读取一个字符。

一次读取一行的函数有:

char *fgets(char *s, int count, FILE* stream);
char *gets(char *s);

fgets从文件流中读入字符,遇到三种情况停止:读到行尾字符(\n);读到文件尾EOF;已经读入了count-1个字符。然后fgets会在读入的字符末尾加上字符串的结尾符号(零字符,'\0',null character,不知道怎么翻译好),所以在第三种情况下刚好会有count个字符写入s指向的字符数组中。函数成功后返回传入的字符指针s,失败的话会返回空指针。

gets从标准输入(stdin)中读入任意多个字符,知道换行或者文件尾,相当于fgets(s, MAX, stdin), 其中MAX不知道多大,所以你事前也不知道分配多少空间好,很容易造成溢出,所以这个函数最好别用。

格式化读取的函数留给以后写了,比较多。


讲完读取然后就是写入了,和读取刚好相反的过程,使用的函数也很类似,下面列出函数声明。

一次写入一个字符的函数:

int fputc(int c, FILE *stream);
int putc(int c, FILE *stream);
int putchar(int c);
fputc将字符c写入文件流中。putc是优化了的fputc版本,可能是宏。putchar(c)相当于fputc(c, stdout)。

一次写入一行的函数:

int fputs(const char *s, FILE *stream);
int puts(const char *s);
fputs将字符指针s所指字符数组中的字符输出到文件流中,不输出零字符('\0')。puts将字符数组中的字符输出到标准输出(stdout),然后输出一个换行符。例如:
char str[] = "hello";
puts(str);
输出hello\n,后面的换行符是puts加上去的。fputs不会加。
我试了一下,如果字符数组最后有换行符,那么这个函数就不加换行了。我用的是GNU的C库,不知道其他版本的C库怎么处理的。

格式化输出也以后写了


我的python学习之路 Python 是一门功能强大且易于学习的编程语言,广泛应用于数据分析、人工智能、Web 开发、自动化等领域。以下是一个 Python 学习路径的总结,帮助你系统地掌握 Python 编程。 阅读详情

相关推荐

准确率、召回率、f1指标计算的区别

准确率是模型正确预测的样本占总样本的比例。

stephen147的博客 1414

2 - Linux目录与文件操作

本文旨在讲述Liunx的目录和文件基本操作

2401_85983616的博客 1599

逆变器并联--下垂控制引入虚拟阻抗

说明传统下垂控制的缺点、分析虚拟阻抗的原理和实现方法

weixin_58670090的博客 1万+

linux文件操作学习2

前言: 前面学习了linux文件操作的基础,主要是整体的认识了linux操作系统的目录结构和功能以及创建、查看、复制、剪切、目录或文件,接下来将更深入的学习文件的操作主要包括用户的管理,文件的查找。 文件的权限修改 [plain] view plain copy [root@xianzan dir]# ls   [root@xian

crazy boy 423

FortiClient EMS实战:从安装到配置的全流程优化指南

本文详细解析了FortiClient EMS 7.0版本的部署与优化全流程,帮助企业构建零信任终端安全体系。从环境规划、高效安装、终端纳管到高级运维,提供实战指南和优化技巧,特别适用于Windows Server环境,助力企业提升终端安全管理效率。

weixin_29325007的博客 548

毫米波雷达之CFAR 目标检测

恒虚警率(CFAR)算法是一种广泛应用于雷达目标检测的算法,其主要目 标是减少由于杂波与回波之间强度不对称而引起的误报,以确保相对恒定的虚警 率。如图 3.4(a)所示,表示由距离单元组成的一维数据。在待测单元 D 周围选 择若干个背景杂波功率的蓝色单元构成参考滑窗,称为参考单元;而待测单元 D 相邻的若干个不用于背景估计的单元则称为保护单元。当参考单元和保护单元的 维度从一维扩展到二维时,相应的 CFAR 检测由一维 CFAR 演变为二维 CFAR 以处理参考窗口,如图 3.4 (b)所示。

m0_56120826的博客 4922

【Linux】2.文件操作

文件操作命令 touch 文件名 文件编辑 Vi编辑器 vi 文件名称 命令模式 h j k l 左 下 上 右 dd 剪切当前行 yy 复制 p 下一行黏贴 P 上一行黏贴 a在光标后插入 A在当行末插入 i在光标前插入 I在当行首插入 o在当前行之下插入 O在上一行插入 编辑模式 : 最末行模式 :set nu 显示行号 :w 保存 :wq 保存并退出 :q! 不保存退出...

codeDonald的博客 568

基础知识学习 -- qnx 系统

qnx os车载系统

求变,从思想开始 3873

Linux的文件操作2

9、目录权限: 文件或文件夹有三种权限,分别为read(读权限)、write(写权限)、execute(执行权限) 有三种用户可以拥有权限:创建者,同组用户,其他用户 (1)查看文件权限 此文件,创建者拥有读和写的权限(从左数234位);同组用户拥有读的权限(从567位);其他用户拥有读的权限(从左数8910位) (2)修改文件权限 二进制方法:可读(4)可写(2)可执行(1) 此时,创建者拥有读、写、执行的权限;同组用户和其他用户拥有读和写的权限 字符方法 “a”表示所有用户,“u”表示创建者(属组

Yua_H的博客 343

银行客户投诉预测模型优化

在实际操作中,银行可以使用这个优化后的模型来识别那些可能引起客户不满的因素,并采取预防措施。例如,如果模型表明退款金额是一个很强的预测因子,银行可能会审查其退款政策,以确保它对客户是公平和透明的。在银行业务中,客户投诉是一个重要的指标,它直接关系到客户满意度和银行服务质量。某一个指标,比如:退款金额,本文假设退款金额对于预测投诉的权重应该高于赔偿金额。在每次迭代中,本文使用当前的权重组合来训练模型,并计算在测试集上的准确率。的可能值来搜索最佳的权重组合,并输出最佳准确率及对应的权重。来寻找最佳的权重组合。

weixin_57499254的博客 1707

别再死记硬背GNN公式了!用PyTorch Geometric从零实现一个GraphSAGE(附完整代码)

本文通过PyTorch Geometric从零实现GraphSAGE模型,深入解析图神经网络的核心原理与实战应用。文章提供完整代码示例,涵盖环境配置、邻居采样、信息聚合等关键步骤,帮助开发者掌握图表示学习技术,避免陷入公式推导的困境。适合希望将GNN应用于实际项目的中级开发者和学生。

weixin_42530570的博客 347

linux文件操作(2)

七.文件操作原理 1.文件描述符 (1)文件描述符相当于文件的索引。 在linux中有三个默认的的文件描述符: 0 标准输入 1 标准输出 2 标准错误 demo7 我们先从标准输入里面读取数据到readbuf里,然后再把readbuf里的数据标准输出。 #include<unistd.h> #include<string.h> #include<stdio.h> int main() { int fd; char readbuf

qq_49783511的博客 328

手把手教你学 GPU SoC 芯片(9.3)--GPU SOC 功耗和热管理的动态电压和频率调整(DVFS)

通过动态电压和频率调整(DVFS),可以有效地管理GPU SoC的功耗和热管理。合理的DVFS策略不仅可以节省功耗,提高能效,还可以延长设备的使用寿命。

MHD0815的博客 1498

Linux-(2)Linux下的基本文件操作

在linux下一切都是文件,目录是文件,硬件也是文件.所以基础的文件操作就尤其重要.   1. 列出目录的内容:     ls   不加目录名列出当前目录       参数:         -a  显示所有文件(包括隐藏文件)         -l  显示详细信息         -R  递归显示子目录结构         -ld  显示目录和链接信息     2.

RedStarOfSleep's Blog 1307

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

2、Linux中关于文件操作的命令

多行 替换: n,m sub/旧内容/新内容/g → 将n - m行所有出现的旧内容换为新内容。单行替换: n (简写成“s”)sub/旧内容/新内容 → 把第n行第一个旧内容改为新内容。3> 末行模式:可替换、保存、另存为,退出,强制退出、将其他文件读入到当前文件等。-r 递归删除 ,删除该目录和该目录中的所有文件。mv 原文件 目录/ =>移动(在不同目录下)2> 编辑模式:按“i,o,大 O,a”进入;按 ESC 返回命令模式。

admin838374841_的博客 333

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

linux文件操作管理,Linux day2—Linux 系统的文件操作命令/权限管理

一、创建文件1.1创建目录文件—mkdir语法:mkdir [选项] 目录名mkdir命令的作用是可以实现在当前位置或指定位置创建单个或多个目录文件,*需要注意的是创建多个目录时目录名之间必须用空格隔开。*mkdir的选项-m:在创建单个目录文件时,设置该目录文件的操作权限;-p:递归创建,当所要创建的目录中包含子目录文件时,使用该选项可以一定创建父目录和子目录。1.2 创建非目录文件—tou...

weixin_42365176的博客 159

Linux操作系统 ——文件操作2

pragma pack 是 编译器指令,用于控制结构体的 内存对齐方式:#pragma pack(push, n):保存当前对齐方式,并设置新的对齐字节数 n(n=1 表示1字节对齐)#pragma pack(pop):恢复之前保存的对齐方式。该结构体中的字节数只有9个,但实际所占内存为12;当他们以字节对齐,实际上也就只占了9个如:查看bmp图片的像素例题说明:①#pragma pack(push, 1) 的作用取消结构体对齐优化,使所有字段紧密排列(无填充字节)。

2401_84676053的博客 802

2.关于Linux文件操作

删除文件:rm -f 或者直接rm+文件名(还需要在删除后输入y进行同意)touch+你所要创建的文件1 文件2 文件3。rm -f+你所需要删除的文件1 文件2 文件3。touch .123可创建隐藏文件。关于文件操作的扩展指令。创建文件:touch。2.连续删除多个文件。

z3368564176的博客 190

Linux day2——文件操作命令

(注意:创建文件夹需要修改权限,请确保操作均在HOME目录内,不要再HOME外操作,涉及到权限问题,HOME外无法成功。*test*,表示匹配任何包含test的内容演示: 删除所有以test开头的文件或文件夹。参数2,Linux路径,表示要移动去的地方,如果目标不存在,则进行改名,确保目标存在。参数必填,表示要创建的目录的路径,相对、绝对、特殊路径符都可以使用。参数1,Linux路径,表示被复制的文件或文件夹。参数1,Linux路径,表示被移动的文件或文件夹。

qq_52245937的博客 228

Linux操作系统2:目录文件操作

1.cd~:切换到当前家目录下的用户目录下,比如:cd ~,就会切换到/home/st,等价于cd/home/st。find:查找文件或目录(递归查找),从硬盘查找,精确性高,性能低。grep:搜索文件内容,在文件中查找指定的字符序列(字符串)(管道):将前一个指令执行的结果作为后一个指令执行的条件((管道):将前一个指令执行的结果作为后一个指令执行的条件(注意:cd后不跟文件路径,应该跟文件夹(目录)路径。ls:显示指定路径(默认当前的路径)下的文件或目录。-a:显示所有(包含隐藏文件)文件或目录;

m0_64837308的博客 1381

Linux文件操作2

3/27 ftruncate:将指定文件大小修改成length指定的大小(用来给文件扩容,如果指定的大小小于当前文件,那就删除后面的数据) ftruncate(int fd,length) Ftruncate(fd,0) stdio.h:C的标准输入输出库:I/O(input output) stdout:输出流 行缓冲:stdout在终端上进行输出的时候,输出的规则为每当出现换行符的时候,进行一次刷新缓存,然后再进行操作(printf输出的时候,是看到换行符才进行输出) fopen():r :只读 w:

m0_48507061的博客 108

Linux高级编程-文件操作(2)

pragma pack 是#pragma pack(push, n):保存当前对齐方式,并设置新的对齐字节数 n(n=1 表示1字节对齐)#pragma pack(pop):恢复之前保存的对齐方式。uint16_t a;// 2字节uint32_t b;// 4字节a 占用 2 字节,但编译器会在后面填充 2 字节(使 b 从 4 的倍数地址开始)。实际内存布局:[a(2)][padding(2)][b(4)],总大小 = 8 字节。a 和 b 紧密排列,无填充字节。

2401_88842309的博客 1496

Linux 文件操作总结(2)

Linux 文件操作总结(2)  fcntl 函数作用操作文件描述符。接口原型#include&lt;unistd.h&gt;#include&lt;fcntl.h&gt;int fcntl(intfd, int cmd, ... /* arg */ );功能f c n t l函数有五种功能:• 复制一个现存的描述符(c m d=F _ D U P F D)。• 获得/设置文件描述符标记(c m ...

冰冻三尺非一日之寒 308

【C++与Linux】文件篇(2)- 文件操作的系统接口详解

本文继续深入研究Linux的文件,又语言层面继续深入系统层面,详细的讲解open,close,write,read 还有三个基本的文件描述符

2301_80127108的博客 1164

Linux编程基础 2.2:文件操作

1 文件操作 stat() access() chmod() truncate() link() 1.1 stat函数 #include <sys/stat.h> int stat(const char *path, struct stat *buf); 功能:用于获取文件的属性; 参数说明: path:文件路径; buf:接收获取到的文件属性;文件属性存储在inode中,函数从inode结构体中获取文件信息。 返回值说明: 成功:0 不成功:-1并设置errno 【案例1】使用sta

爱学习爱运动的专栏 1542

简明Linux-Linux下的文件操作(2)

1 lseek函数 函数:off_t lseek(int fd, off_t offset, int whence) 头文件:#include <unistd.h> #include <sys/types.h> 参数:fd 文件描述符 offset 偏移量,可以为正,也可以为负数 whence 偏移的起始位置,由三种可以设置 SEEK_SET #开头位置 The file offset is set to offset bytes. SEEK_CUR #光标所在位

Blunt_Du的博客 1157
上一篇: Linux 下的文件操作
下一篇: C调用汇编
High_High
博客等级 码龄19年 131粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值