IO函数-2

本文详细介绍了C语言中用于读取缓冲区的getline()函数及其工作原理,强调了其无法释放内存的缺点。同时,讨论了临时文件的创建,对比了tmpnam()和tmpfile()函数。tmpnam()虽然方便但存在非线程安全和不能及时销毁的问题,而tmpfile()则能确保文件的安全销毁。文章深入探讨了这些函数在实际编程中的应用和潜在风险。
摘要由CSDN通过智能技术生成

完整获取缓冲区一行的函数:getline()
缺点:没有配对函数使用,不能释放内存
实现原理:内部调用malloc()先分配一块内存,内寸不够使用时,不断调用relloc()申请内存,直至获取
完毕;

1. 创建临时文件:

要求:1.如何不冲突 2.及时销毁
匿名文件:ls查看不到,但是存在

char* tmpnam(char *s); //非线程安全,并且不能及时销毁
作用:根据给定的文件名创建一个文件
非线程安全: 分配文件名字,假如时间片耗尽, 另一个任务可能也会分配到此文件名。并且提前完成文件创建。当前任务再根据名字创建文件,就有产生冲突;产生的原因在于此操作是非原子操作
FILE* tmpfile(void); //可以及时销毁。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值