当前位置: 首页 > news >正文

Linux3-文件io、时间有关函数

一、前情回顾

1.当scanf输入10\n直接结束程序,因为scanf接收了10,fgets(接收了\n结束程序),

因此可以加一个getchar();消耗一个\n。

2.fgets();所接收的\n利用buff[strlen(buff)-1]=0;

二、文件io

1.目的:不希望指令进入缓冲区,希望直接被系统调用可以使用文件io

2.块设备文件、字符设备文件、目录文件、普通文件、套接字文件、管道文件均可使用文件io

3.特点:系统调用,Linux内核提供的文件操作接口

                打开文件  open

                读写文件  read /write

                关闭文件  close

                文件打开系统会自动分配一个文件描述符

int open(const char *path,int flags)

//man 2系统调用   man 3标准c库

头文件:

        #include<sys/types.h>

        #include<sys/stat.h>

        #include<fcntl.h>

功能:

        打开一个文件

参数:

        path打开的文件名

        flags打开方式

                        O_RDONLY   只读            

                        O_WRONLY  只写             

                        O_RDWR      读写             

                        O_CREAT   文件不存在时创建  一定加0664

                        O_TRUNC   清空文件         

                        O_APPEND 追加写

rO_RDONLY
r+O_RDWR  
wO_WRONLY     |   O_CREAT    |    O_TRUNC 
w+ O_RDWR        |   O_CREAT    |    O_TRUNC 
aO_WRONLY     |   O_CREAT    |    O_APPEND
a+O_RDWR         |   O_CREAT    |    O_APPEND

返回值:

        成功:文件描述符(操作系统为已打开文件分配的标识符;一个小的非负的整形数据,代表一个已打开的文件)

                        默认的文件描述符 0-1023

                        分配原则:最小未被使用原则 

                        系统默认已打开的三个文件对应的文件描述符:

                                                              标准io (FILE *)            文件io

                                        标准输入设备    stdin                             0

                                        标准输出设备    stdout                           1

                                        标准出错设备    stderr                            2

                       文件描述符泄漏:打开的文件使用完时,未及时

  •                                 使用完及时关闭
    •                           修改文件描述符上限

        失败:-1

 读写权限

-rwxrwxrwx

0  1   2   3

0:文件类型

1.当前用户对该文件的读写执行权限

2.当前用户所在组的同组用户对该文件的读写执行权限(可多人)

3.其他用户对该文件的读写执行权限

int open(const char *path,int flags,mode_t mode)

注:mode

1.为打开读写执行权限,一般传0664

int close(int fd)

头文件:

        #include<unistd.h>

不关造成文件描述符的泄漏,文件描述符个数有限

ssize_t read(int fd, void *buf, size_t count);

功能:读文件

参数:

        fd:从文件描述符开始

       任意类型的 buf:读到buf中

        count:读取几个字节

返回值:

        成功:返回读到的字节数

        失败:-1

ssize_t write(int fd, void *buf, size_t count);
off_t lseek(int fd,off_t sffset,int whence)

功能:重新定位文件的读写位置

参数

        fd:定位的文件

        offset:定位的偏移量

        whence:要偏移的位置

返回值:

        成功:文件开头到当前位置的偏移量

        失败:-1

与时间相关的函数:

time();

功能:获取1970-1-1 00:00:00到现在的秒数

ctime();

功能:将秒数转换为字符串时间

localtime();

功能:将秒数转换为日历时间

int fprintf(FILE *stream, const char *format, ...);

将格式化后的字符串写入到文件流指针所对用的文件里

int dprintf(int fd, const char *format, ...);

将格式化后的字符串写入到文件描述符(012)所对用的文件里

int sprintf(char *str, const char *format, ...);

将格式化后的字符串写入到str所指向的内存空间

*逻辑与 && 全真为真          按位与    &      全真为真   

 逻辑或 ||    全假为假           按位或    |        有一个一即为一

相关文章:

Linux3-文件io、时间有关函数

一、前情回顾 1.当scanf输入10\n直接结束程序&#xff0c;因为scanf接收了10&#xff0c;fgets&#xff08;接收了\n结束程序&#xff09;&#xff0c; 因此可以加一个getchar();消耗一个\n。 2.fgets();所接收的\n利用buff[strlen(buff)-1]0; 二、文件io 1.目的&#xff1a…...

VScode运行C语言提示“#Include错误,无法打开源文件stdio.h”

C/C环境配置 参考&#xff1a; VS Code 配置 C/C 编程运行环境&#xff08;保姆级教程&#xff09;_vscode配置c环境-CSDN博客 基本步骤 - 安装MinGW-W64&#xff0c;其包含 GCC 编译器&#xff1a;bin目录添加到环境变量&#xff1b;CMD 中输入gcc --version或where gcc验证…...

【Linux】线程全解:概念、操作、互斥与同步机制、线程池实现

&#x1f3ac; 个人主页&#xff1a;谁在夜里看海. &#x1f4d6; 个人专栏&#xff1a;《C系列》《Linux系列》《算法系列》 ⛰️ 道阻且长&#xff0c;行则将至 目录 &#x1f4da;一、线程概念 &#x1f4d6; 回顾进程 &#x1f4d6; 引入线程 &#x1f4d6; 总结 &a…...

【第4章:循环神经网络(RNN)与长短时记忆网络(LSTM)— 4.3 RNN与LSTM在自然语言处理中的应用案例】

咱今天来聊聊在人工智能领域里,特别重要的两个神经网络:循环神经网络(RNN)和长短时记忆网络(LSTM),主要讲讲它们在自然语言处理里的应用。你想想,平常咱们用手机和别人聊天、看新闻、听语音助手说话,背后说不定就有 RNN 和 LSTM 在帮忙呢! 二、RNN 是什么? (一)…...

平板作为电脑拓展屏

有线串流&#xff08;速度更快&#xff09; spacedesk 打开usb对安卓的连接 用usb线直接连接电脑和平板 无线串流&#xff08;延迟高&#xff0c;不推荐&#xff09; todesk pc和手机端同时下载软件&#xff0c;连接后可以进行远程控制或扩展屏幕 spacedesk 连接到同一个…...

【Spring+MyBatis】留言墙的实现

目录 1. 添加依赖 2. 配置数据库 2.1 创建数据库与数据表 2.2 创建与数据库对应的实体类 3. 后端代码 3.1 目录结构 3.2 MessageController类 3.3 MessageService类 3.4 MessageMapper接口 4. 前端代码 5. 单元测试 5.1 后端接口测试 5.2 使用前端页面测试 在Spri…...

Redis的简单使用

1.Redis的安装Ubuntu安装Redis-CSDN博客 2.Redis在Spring Boot 3 下的使用 2.1 pom.xml <!-- Redis --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifac…...

IDEA集成DeepSeek AI助手完整指南

在当今快速发展的软件开发领域,AI辅助编程工具正在成为开发者的重要助手。本文将详细介绍如何在IDEA中集成DeepSeek AI助手,帮助开发者提升编程效率。 一、环境准备 © ivwdcwso (ID: u012172506) 1.1 IDEA版本要求 在开始集成之前,需要确保你的IDEA版本满足要求: …...

rust学习笔记1-window安装开发环境

1.登录官网下载https://www.rust-lang.org/zh-CN/tools/install 下载 rustup-init.exe。 2.设置环境变量 &#xff08;1&#xff09;在指定路径新建.cargo和.rustup文件夹 CARGO_HOME RUSTUP_HOME &#xff08;2&#xff09;配置rustup下载源镜像 提高rust安装组件下载速…...

【钱包】【WEB3】【Flutter】一组助记词如何推导多个账号钱包

一、前言 一组助记词可以推导多个账户&#xff0c;是因为在区块链钱包中&#xff0c;助记词&#xff08;Mnemonic&#xff09;实际上是 BIP39 标准下生成的一个种子&#xff0c;该种子通过 BIP32/BIP44 标准可以派生出无限多个账户地址。 这里我将以太坊Ethereum为例&#xf…...

基于SSM+Vue的智能汽车租赁平台设计和实现(源码+文档+部署讲解)

技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论…...

Zotero PDF Translate插件配置百度翻译api

Zotero PDF Translate插件可以使用几种翻译api&#xff0c;虽然谷歌最好用&#xff0c;但是由于众所周知的原因&#xff0c;不稳定。而cnki有字数限制&#xff0c;有道有时也不行。其他的翻译需要申请密钥。本文以百度为例&#xff0c;进行申请 官方有申请教程&#xff1a; Zot…...

深度学习05 ResNet残差网络

目录 传统卷积神经网络存在的问题 如何解决 批量归一化BatchNormalization, BN 残差连接方式 ​残差结构 ResNet网络 ResNet 网络是在 2015年 由微软实验室中的何凯明等几位大神提出&#xff0c;斩获当年ImageNet竞赛中分类任务第一名&#xff0c;目标检测第一名。获得CO…...

【Python项目】文本相似度计算系统

【Python项目】文本相似度计算系统 技术简介&#xff1a;采用Python技术、Django技术、MYSQL数据库等实现。 系统简介&#xff1a;本系统基于Django进行开发&#xff0c;包含前端和后端两个部分。前端基于Bootstrap框架进行开发&#xff0c;主要包括系统首页&#xff0c;文本分…...

【ISO 14229-1:2023 UDS诊断(ECU复位0x11服务)测试用例CAPL代码全解析④】

ISO 14229-1:2023 UDS诊断【ECU复位0x11服务】_TestCase04 作者&#xff1a;车端域控测试工程师 更新日期&#xff1a;2025年02月17日 关键词&#xff1a;UDS诊断协议、ECU复位服务、0x11服务、ISO 14229-1:2023 TC11-004测试用例 用例ID测试场景验证要点参考条款预期结果TC…...

机器学习:k近邻

所有代码和文档均在golitter/Decoding-ML-Top10: 使用 Python 优雅地实现机器学习十大经典算法。 (github.com)&#xff0c;欢迎查看。 K 邻近算法&#xff08;K-Nearest Neighbors&#xff0c;简称 KNN&#xff09;是一种经典的机器学习算法&#xff0c;主要用于分类和回归任务…...

Pytorch实现论文之一种基于扰动卷积层和梯度归一化的生成对抗网络

简介 简介:提出了一种针对鉴别器的梯度惩罚方法和在鉴别器中采用扰动卷积,拟解决锐梯度空间引起的训练不稳定性问题和判别器的记忆问题。 论文题目:A Perturbed Convolutional Layer and Gradient Normalization based Generative Adversarial Network(一种基于扰动卷积层…...

Golang 面试题

常见的 Go 语言面试题及其答案和代码示例: 一、高频面试题 1. Goroutine 和线程的区别? 答案: Goroutine 是 Go 语言中的轻量级线程,由 Go 运行时管理,初始栈大小约为 2KB,可以动态扩展和收缩,创建和切换成本非常低。线程 是操作系统级别的线程,栈大小通常为 MB 级,…...

数据结构-栈、队列、哈希表

1栈 1.栈的概念 1.1栈:在表尾插入和删除操作受限的线性表 1.2栈逻辑结构: 线性结构(一对一) 1.3栈的存储结构:顺序存储(顺序栈)、链表存储(链栈) 1.4栈的特点: 先进后出(fisrt in last out FILO表)&#xff0c;后进先出 //创建栈 Stacklist create_stack() {Stacklist lis…...

newgrp docker需要每次刷新问题

每次都需要运行 newgrp docker 的原因: 当用户被添加到 docker 组后&#xff0c;当前会话并不会立即更新组信息&#xff0c;因此需要通过 newgrp docker 切换到新的用户组以使权限生效 如果不想每次都手动运行 newgrp docker&#xff0c;可以在终端中配置一个自动刷新的脚本。…...

JAVA Kotlin Androd 使用String.format()格式化日期

在以前的开发中&#xff0c;日期格式化一直使用的是SimpleDateFormat进行格式化。今天发现String.format也可以格式化。当 然&#xff0c;两种方式的优劣没有进行深入分析。 val date Date()//月&#xff0c;日&#xff0c;星期&#xff0c;AM/PM//Fue 1 (Sat) pmval fullDate…...

Python----数据结构(单链表:节点,是否为空,长度,遍历,添加,删除,查找)

一、链表 链表是一种线性数据结构&#xff0c;由一系列按特定顺序排列的节点组成&#xff0c;这些节点通过指针相互连接。每个节点包含两部分&#xff1a;元素和指向下一个节点的指针。其中&#xff0c;最简单的形式是单向链表&#xff0c;每个节点含有一个信息域和一个指针域&…...

腾讯的webUI怎样实现deepseek外部调用 ; 腾讯云通过API怎样调用deepseek

腾讯的webUI怎样实现deepseek外部调用 目录 腾讯的webUI怎样实现deepseek外部调用腾讯云通过API怎样调用deepseekhtml方式curl方式python方式腾讯云通过API怎样调用deepseek 重点说明:不需要SK,仅仅使用ip和端口号 html方式 <!DOCTYPE html> <html lang="e…...

基于Spring Boot的社区居民健康管理平台的设计与实现

目录 1 绪论 1.1 研究现状 1.2 研究意义 1.3 组织结构 2 技术介绍 2.1 平台开发工具和环境 2.2 Vue介绍 2.3 Spring Boot 2.4 MyBatis 2.5 环境搭建 3 系统需求分析 3.1 可行性分析 3.2 功能需求分析 3.3 系统用例图 3.4 系统功能图 4 系统设计 4.1 系统总体描…...

网络编程(24)——实现带参数的http-get请求

文章目录 二十四、day241. char 转为16进制2. 16进制转为 char3. URL 编码函数4. URL 解码函数5. 实现 get 请求参数的解析6. 测试 二十四、day24 我们在前文通过beast实现了http服务器的简单搭建&#xff0c;但是有很多问题我们并没有解决。 在前文中&#xff0c;我们的 get…...

使用 Openpyxl 操作 Excel 文件详解

文章目录 安装安装Python3安装 openpyxl 基础操作1. 引入2. 创建工作簿和工作表3. 写入数据4. 保存工作簿5. 加载已存在的Excel6. 读取单元格的值7. 选择工作表 样式和格式化1. 引入2. 设置字体3. 设置边框4. 填充5. 设置数字格式6. 数据验证7. 公式操作 性能优化1. read_only/…...

力扣 买卖股票的最佳时机

贪心算法典型例题。 题目 做过股票交易的都知道&#xff0c;想获取最大利润&#xff0c;就得从最低点买入&#xff0c;最高点卖出。这题刚好可以用暴力&#xff0c;一个数组中找到最大的数跟最小的数&#xff0c;然后注意一下最小的数在最大的数前面即可。从一个数组中选两个数…...

前端监控的具体实现细节

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…...

ES8中 async 和await的用法详细的总结

async 和 await 是 ES8&#xff08;ECMAScript 2017&#xff09;引入的两个关键字&#xff0c;用于处理异步操作。它们基于 Promise&#xff0c;使得异步代码的编写和阅读变得更加简洁和直观。通过这两个关键字&#xff0c;开发者可以避免回调地狱&#xff08;callback hell&am…...

一键终结环境配置难题:ServBay 1.9 革新 AI 模型本地部署体验

### 一键终结环境配置难题&#xff1a;ServBay 1.9 革新 AI 模型本地部署体验 还在为反复折腾 Ollama 安装命令、配置环境变量而头疼&#xff1f;**ServBay 1.9** 的发布&#xff0c;彻底改变了本地 AI 模型部署的复杂流程。这款原本以“3分钟搭建 Web 开发环境”著称的工具&a…...

[数据结构]红黑树,详细图解插入

目录 一、红黑树的概念 二、红黑树的性质 三、红黑树节点的定义 四、红黑树的插入&#xff08;步骤&#xff09; 1.为什么新插入的节点必须给红色&#xff1f; 2、插入红色节点后&#xff0c;判定红黑树性质是否被破坏 五、插入出现连续红节点情况分析图解&#xff08;看…...

springmvc(13/158)

太感动了&#xff0c;搞了半天以为是 这个dispatcherservlet报错的问题&#xff0c;结果是我第一次改springmvc-servlet.xml里面的后缀出了问题。 <servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.D…...

【javascript】录音可视化

文章目录 前言一、音频数据格式1. 常见的数据格式 二、获取音频方式1. 用FileReader对象读取音频文件2. 通过url请求获取音频数据3. 录音获取音频流 三、音频格式转换1. buffer和blob互相转换2. blob转base643. base64转Uint8Array 四、音频可视化五、大文件上传1. 固定大小分片…...

解锁机器学习核心算法 | K-平均:揭开K-平均算法的神秘面纱

一、引言 机器学习算法种类繁多&#xff0c;它们各自有着独特的优势和应用场景。前面我们学习了线性回归算法、逻辑回归算法、决策树算法。而今天&#xff0c;我们要深入探讨的是其中一种经典且广泛应用的聚类算法 —— K - 平均算法&#xff08;K-Means Algorithm&#xff09…...

Go入门之语言变量 常量介绍

func main(){var a int8 10var b int 5var c int 6fmt.Println("a", a, "b", b, "c", c)d : 10fmt.Printf("a%v leixing%T\n", d, d) } main函数是入口函数,fmt包有三个打印的函数Println&#xff0c;Print&#xff0c;Printf。第…...

音频采集(VUE3+JAVA)

vue部分代码 xx.vue import Recorder from ./Recorder.js; export default {data() {return {mediaStream: null,recorder: null,isRecording: false,audioChunks: [],vadInterval: null // 新增&#xff1a;用于存储声音活动检测的间隔 ID};},async mounted() {this.mediaSt…...

Linux运维篇-存储基础知识

什么是存储 用于存放数据信息的设备和介质&#xff0c;等同于计算机系统中的外部存储&#xff0c;是一个完整的系统。 存储的结构和趋势 存储的体系结构 当前存储的主要体系结构有三种&#xff1a; DASNASSAN 存储的发展趋势 ssd固态硬盘云存储一体化应用存储设备非结构…...

【git】已上传虚拟环境的项目更改成不再上传虚拟环境

虽然git用了很长时间&#xff0c;但是距离精通还是太远了。注意到虚拟环境是因为上传项目时用到的系统是macOS&#xff0c;而拉取项目时用到的系统是win&#xff0c;意识到是时候学习知识了&#xff08;好懒啊&#xff09;。 头一次上传&#xff1a;使用.gitignore避免虚拟环境…...

【Linux网络编程】应用层协议HTTP(请求方法,状态码,重定向,cookie,session)

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;Linux网络编程 &#x1f337;追光的人&#xff0c;终会万丈光芒 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 ​ Linux网络编程笔记&#xff1a; https://blog.cs…...

Android GreenDAO 适配 AGP 8.0+

在 Android 中使用 GreenDao&#xff0c;由于 GreenDao 现在不维护&#xff0c;所以更新到新版本的 Gradle 经常出问题&#xff0c;在这记录一些升级遇到的问题&#xff0c;并且记录解决方案。 博主博客 https://blog.uso6.comhttps://blog.csdn.net/dxk539687357 一、‘:app…...

使用html css js 来实现一个服装行业的企业站源码-静态网站模板

最近在练习 前端基础&#xff0c;html css 和js 为了加强 代码的 熟悉程序&#xff0c;就使用 前端 写了一个个服装行业的企业站。把使用的技术 和 页面效果分享给大家。 应用场景 该制衣服装工厂官网前端静态网站模板主要用于前端练习和编程练习&#xff0c;适合初学者进行 HT…...

小胡说技书博客分类(部分目录):服务治理、数据治理与安全治理对比表格

文章目录 一、对比表格二、目录2.1 服务2.2 数据2.3 安全 一、对比表格 下表从多个维度对服务治理、数据治理和安全治理进行详细对比&#xff0c;为读者提供一个直观而全面的参考框架。 维度服务治理数据治理安全治理定义对软件开发全流程、应用交付及API和接口管理进行规范化…...

SpringBoot3.x整合WebSocket

SpringBoot3.x整合WebSocket 本文主要介绍最新springboot3.x下如何整合WebSocket. WebSocket简述 WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议&#xff0c;它允许在浏览器和服务器之间进行实时的、双向的通信。相对于传统的基于请求和响应的 HTTP 协议&#xff…...

SpringBoot中自动装配机制的原理

SpringBoot中的自动装配机制是其核心特性之一&#xff0c;其原理主要基于一系列约定和配置&#xff0c;能够根据项目的依赖和配置自动为应用程序加载和配置需要的Spring组件。以下是SpringBoot自动装配机制原理的详细解释&#xff1a; 一、启动类和注解 SpringBootApplicatio…...

STM32外设SPI FLASH应用实例

STM32外设SPI FLASH应用实例 1. 前言1.1 硬件准备1.2 软件准备 2. 硬件连接3. 软件实现3.1 SPI 初始化3.2 QW128 SPI FLASH 驱动3.3 乒乓存储实现 4. 测试与验证4.1 数据备份测试4.2 数据恢复测试 5 实例5.1 参数结构体定义5.2 存储参数到 SPI FLASH5.3 从 SPI FLASH 读取参数5…...

PHP支付宝--转账到支付宝账户

官方参考文档&#xff1a; ​https://opendocs.alipay.com/open/62987723_alipay.fund.trans.uni.transfer?sceneca56bca529e64125a2786703c6192d41&pathHash66064890​ 可以使用默认应用&#xff0c;也可以自建新应用&#xff0c;此处以默认应用来讲解【默认应用默认支持…...

太空飞船任务,生成一个地球发射、火星着陆以及下一次发射窗口返回地球的动画3D代码

import numpy as np import matplotlib.pyplot as plt from matplotlib.animation import FuncAnimation from mpl_toolkits.mplot3d import Axes3D# 天体参数设置&#xff08;简化模型&#xff09; AU 1.5e8 # 天文单位&#xff08;公里&#xff09; earth_orbital_radius …...

埃拉托斯特尼筛法来生成素数表【C语言】

代码&#xff1a; char *prime(int MAX) {char *a (char*)malloc(MAX * sizeof(char));if (a NULL) {fprintf(stderr, "Memory allocation failed\n");exit(EXIT_FAILURE);}memset(a, 1, MAX * sizeof(char));a[0] 0;a[1] 0;for (int i 2; i * i < MAX; i) …...

VSCode 实用快捷键

前文 VSCode 作为文本编辑神器, 熟练使用其快捷键更是效率翻倍, 本文介绍 VSCode 常用的实用的快捷键 实用快捷键 涉及到文本操作, 搜索定位, 多光标, 面板打开等快捷键 功能快捷键复制光标当前行 (不需要鼠标选中) Ctrl C 剪切光标当前行 (不需要鼠标选中) Ctrl X 当前行下…...

Ubuntu24.04无脑安装docker(含图例)

centos系统请看这篇 Linux安装Docker教程&#xff08;详解&#xff09; 一. ubuntu更换软件源 请看这篇&#xff1a;Ubuntu24.04更新国内源 二. docker安装 卸载老版docker(可忽略) sudo apt-get remove docker docker-engine docker.io containerd runc更新软件库 sudo a…...