【C语言】库函数常见的陷阱与缺陷(一):字符串处理函数[2]--gets函数

embedded/2024/12/20 14:10:38/

C语言中的gets函数是一个用于从标准输入(通常是键盘)读取一行字符串的函数。然而,gets函数存在多个陷阱与缺陷,这些缺陷可能导致程序崩溃、安全漏洞或未定义行为。

一、gets功能与用法

gets函数的主要作用是从标准输入(通常是键盘)读取一行字符串,并将其存储在指定的缓冲区中,直到遇到换行符(\n)或文件结束符(EOF)。然而,换行符不会被存储在缓冲区中,而是会被替换为空字符(\0)以标记字符串的结束。

用法示例:

char buffer[100];
gets(buffer);

在这个例子中,gets函数会读取一行输入,并将其存储在buffer数组中,直到遇到换行符或达到数组的最大容量(99个字符加上一个空字符)。


http://www.ppmy.cn/embedded/147295.html

相关文章

AIGC:图像风格迁移技术实现猜想

定义以下函数: f(image) -> (style, content) g(style, content) -> image 函数f将图片(image)分解成风格(style)和内容(content)两部分 函数g将风格(style)和内容…

写入hive metastore报问题Permission denied: user=hadoop,inode=“/user/hive”

背景 使用Doris创建hive catalog后,想在hive上的库中创建一个表,报如下图片错误 解决办法 hdfs dfs -ls /看到如下图片所示,只有root用户有写的权限 所以通过export HADOOP_USER_NAMEroot将hadoop的用户名改成root,然后再hdfs…

鸿蒙Next状态管理优秀实践

在鸿蒙Next应用开发中,高效的状态管理对于提升应用性能至关重要。本文将介绍一些状态管理的优秀实践,帮助开发者避免常见的低效开发场景,提升应用质量。 一、使用ObjectLink代替Prop减少不必要的深拷贝 问题描述 在父子组件数值传递中&…

Visio——同一个工程导出的PDF文件大小不一样的原因分析

现象 在不同电脑,导出来的PDF文件大小不一样。 原因分析 文件小的未将字体嵌入,文件大的已经将字体嵌入了。

【数据集】玻璃门窗缺陷检测数据集3085张5类YIOLO+VOC格式

数据集格式:VOC格式YOLO格式 压缩包内含:3个文件夹,分别存储图片、xml、txt文件 JPEGImages文件夹中jpg图片总计:3085 Annotations文件夹中xml文件总计:3085 labels文件夹中txt文件总计:3085 标签种类数&am…

aac怎么转为mp3?操作起来很简单的几种aac转mp3的方法

aac怎么转为mp3?aac格式的优势主要体现在音质和压缩效率,尤其是在较低比特率下,能够实现更清晰的音质,这也是为何许多现代设备和应用偏爱aac格式的原因之一。特别是在手机、平板以及智能音响等设备中,aac文件几乎可以无…

yolov目标检测的图片onnx输入尺寸及预处理

参考 (github.com) 当你使用不同的图像尺寸(例如1280)进行预测时,YOLOv8会自动对输入图像进行适当的预处理以适配模型。这通常包括缩放和填充操作,确保图像不会发生畸变,同时保持原始宽高比。 对于使用OpenCV进行预处…

数据结构:双向带头循环链表的增删查改

先构建一个结构体&#xff0c;对其链表进行初始化&#xff0c;尾插&#xff0c;尾删&#xff0c;头插&#xff0c;头删&#xff0c;查找&#xff0c;修改&#xff0c;中间插入&#xff0c;删除等相关操作。 List.h #pragma once #include <stdio.h> #include <stdli…