Linux14.文件(下)

news2024/11/24 13:45:00

文件描述符fd,分配到的是从0开始最小的没有被占用的。

2.输出重定向(重定向的本质,就是在操作系统内部更改fd对应的内容的指向),同时理解输入重定向和追加重定向。

db93d216b2f34bb0ba5f1d4174db4efa.jpg

3.重定向函数dup2(oldfd, newfd),oldfd -> newfd (小技巧:一般情况前面一个参数大,后面一个参数小(0,1,2))。

4.Linux一切皆文件,使用面向对象的方法,每一种硬件创建一个结构体(函数使用函数指针),所以在操作系统看来,对硬件的操作变成了对文件的操作。

5.缓冲期,一般而言显示器是行缓冲,磁盘文件是全缓冲,用户缓冲区是由语言维护的,不是操作系统维护的。

C语言标准库提供的文件操作函数(fprintf,fputs…)会写入缓冲区,等缓冲区满了之后才会发生写时拷贝写进内核缓冲期。操作系统提供的接口(write)会写入内核缓冲区,如果同时用这些函数,注意文件中内容的上下顺序(write函数写入的东西在最上面, C语言提供的函数写入的东西在下面)。

6.函数syncfs(fd)将数据写进外设。

7../a.out > ok.txt 2>err.txt :以上指令,使用重定向,把标准输出和标准错误分开写入两个不同的文件。

如果想把所有的输出都写进一个文件里,使用以下指令 :./a.out > log.txt 2>&1

8.磁盘使用CHS寻址方式,每个扇区的大小是512字节。将它抽象成一个巨大的数组,操作系统使用LBA寻址方式对它进行管理。

62cf39c56e9f4aaa8414521f70e5f207.jpg

 7b43c6951b4f482e9fc167c519b54ba2.png

d15fb7347b124644b8e29d75c7efa295.png

9.操作系统和文件进行交互的基本单位是4KB。理解inode和文件名的关系。

10.ln -s 文件A 文件B :建立软链接,文件B指向文件A。

11.ln 文件A 文件B :建立硬链接。

12.软链接有独立的inode(是独立文件),硬链接则没有(不是独立文件)。软链接相当于一个快捷方式,硬链接是建立了文件名和inode的映射关系(起别名,其意义类似于c++中的智能指针)。

13.unlink指令相当于删除。

14.静态库制作

ar -c lib….a *.o :将所有.obj文件打包成静态库(其中…为名字,可以任意起)。

使用Makefile自动打包

4ca5638e6b22482e9af054ca57b2bee8.png

15.使用静态库

20591d36f35441239e12099a4804a25a.png

(第1种方法,不建议使用,因为不能保证自己做的库的正确性,会污染官方的库)使用第三方库(不是操作系统的和语言提供的标准库),gcc编译时,加上指令 :-l库名(去头去尾)。

16.制作动态库

gcc -fPIC -c 文件.c -o 文件.o

gcc -shared 文件.o(…) -o lib….so

17.同时生成动态库和静态库

1b7c4b2ecc5d4dfdbde173a3d3ecfade.png

18.使用动态库

第1种方法和静态库的第1种方法一样,都不建议使用。

34978175dc8645ad8cfc641b45e48276.jpg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/745640.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

jennkins配置k8s动态slave

一、 首先完成jenkins的部署可参考jenkins部署 二、 如果是在同一个k8s集群下部署的则直接这样配置 在security中agent的端口也配置成50000 如果是虚拟机中部署的jenkins添加k8s需要做如下操作 echo ‘certificate-authority-data-value’ | base64 -d > ./ca.crt &#…

数字化转型中,企业如何做系统设计

随着人工智能、大数据、云计算、区块链等新一代信息化、数字化技术的高速发展,现阶段社会的方方面面都已经有了巨大的改变,各行各业的企业也都开始了新一轮的科技革命和产业革命,可以说是互联网时代之后,又一个能够从各方面影响世…

MySQL物理文件----日志文件(错误日志、通用查询日志、二进制日志、慢查询日志)

文章目录 MYSQL5.7/8.0支持的几种日志文件1、错误日志(Error log)2、一般或通用查询日志(General query log)3、二进制日志(Binary log)3、1 查看是否开启二进制日志3、2二进制日志开启3、3查看二进制文件位…

数据结构05:树与二叉树[C++][并查集]

图源:文心一言 Chat GPT生成,代码的核心思想与王道咸鱼老师的视频虽然类似,但是在具体实现上毕竟还是略有差别~~因此,如果对考研方向的并查集代码感兴趣,可以查看—— 王道咸鱼老师的视频:{5.5_2_并查集_…

会议邀请|思腾合力邀您共赴MICS 2023第十届医学图像计算青年研讨会

医学图像计算青年研讨会 (Medical Imaging Computing Seminar, MICS) 于2014年成立,宗旨是为医学影像分析领域的全球华人学者提供学术交流平台,增进本领域科研人员和医学专家的交流和合作。 第十届医学图像计算青年研讨会 (MICS 2023) 将于2023年7月14-1…

form表单禁止浏览器自动填充密码

因为用户修改密码的时候,谷歌浏览器、edge等浏览器,总是自动将保存的密码填充到重置密码输入框中,给用户使用带来困扰。原因是因为你在登录的时候选择记住了账号和密码了,所以就会把信息存在浏览器里面,当你在修改密码的时候,由于form表单的 type="password" 所…

【Arduino小车实践】PID算法简介

一、介绍 1. 特点 流量稳定、改变流量(水阀):测量当前流量,与预期流量进行比对,不相等则进行相应的调整。 2. 适用系统 适用线性系统(二阶以内的线性系统):齐次性、叠加性 3. 宏…

ASEMI-A7二极管可用什么代替,M7二极管正负极判断

编辑-Z 在电子设备的世界中,二极管是最常见的组件之一。它们在各种设备中发挥着重要的作用,包括电源适配器、电源供应器、电池充电器等。在这篇文章中,我们将探讨A7二极管可用什么代替,以及M7二极管正负极判断。 首先&#xff0c…

解决Vue 报错error:0308010C:digital envelope routines::unsupported问题

解决Vue 报错error:0308010C:digital envelope routines::unsupported问题 问题原因方法一:修改配置方法二:尝试卸载Node.js 17版本并重新安装Node.js 16版本,然后再重新启动方法三:package.json增加配置(大多数解决问…

【自动驾驶汽车量子群粒子过滤器】用于无人驾驶汽车列车定位的量子粒子滤波研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

Doris单机安装部署

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、前期准备1.下载安装包2.修改limits文件 二、安装1.配置启动FE2.配置启动BE3.web测试4.连接测试、添加BE 结尾 前言 Apache Doris 是一个基于 MPP 架构的高…

Linux搭建PXE服务器

安装PXE启动服务器所需的软件包 Tftp,dhcp和vsftpd(httpd也可以作为安装源) 编辑TFTP配置文件 重启tftp服务 编辑/etc/dhcp/dhcpd.conf,新建作用域,主要设置下一跳服务器地址和引导文件名称。 重启dhcp服务 把centos光盘内容拷贝…

营销本地化,跨境电商都要懂的行业知识

营销本地化是调整营销内容以满足目标市场的文化、语言和其他相关差异的过程,这对于那些希望在全球市场取得成功的企业至关重要。它可以帮助公司与客户建立有意义的联系,并提供优质的客户体验。随着技术和互联网的进步,企业可以获得大量资源、…

基于单片机的厨房安全监测系统的设计与实现

功能介绍 以STM32/51单片机作为主控系统; OLED液晶显示当前检测的气体浓度,温度,是否有火等信息; 按键可以设置温度上限、可燃气体浓度上限; 当温度超过我们设置自动开启风扇进行降温; 当检测到天然气泄露后…

【误差自适应跟踪方法AUV】自适应跟踪(EAT)方法研究(Matlab代码Simulin实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

使用wireshark抓包,验证feign http请求的数据透传结果

一、背景 在灰度部署、A/B测试、单元化部署等场景下,微服务服务之间的调用,要求我们对上游服务给过来的数据进行透传至下游服务。 如果是灰度部署,需要对http请求进行染色,http header头部增加灰度标识,然后传递给下…

掌握std::move和std::forward

在讲解std::move和std::forward之前,我们必须先了解C中左值、右值的相关概念。 1、左值、右值 (1)左值:一般指的是在内存中有对应的存储单元的值,最常见的就是程序中创建的变量。 (2)右值&…

热泵空调渗透率超10%,哪三家本土供应商领跑市场

作为新能源汽车产业链的潜在高增长赛道,以及整车热管理系统的关键组成部分,车用热泵空调市场近年来呈现快速发展的态势。 而从新能源整车热管理角度来看,通过制冷及热泵技术的完善,发展低碳的热管理技术,从而提升热管…

基于Hadoop生态实现离线与实时的消费者商品交易行为分析(消费行为分析、购买偏好分析)

项目背景 大数据专业综合项目实践,数据集采用阿里天池的公开数据集,下载链接: 消费者商品交易调研清单 这个数据集是一个样本集,共有5000多条记录,每条记录代表一个消费者的商品交易调研信息。以下是对每个字段的描述&#xff1a…

什么是卷积神经网络——CNN

卷积神经网络(CNN) PS: 卷积神经网络 主要包括:输入层、卷积层、池化层、全连接层 1. 卷积神经网络结构介绍 如果用全连接神经网络处理大尺寸图像具有三个明显的缺点: (1)首先将图像展开为向量会丢失空间信息&…