草庐IT

sync_close

全部标签

linux - 更新 Ubuntu guest 后 Vagrant "ssh_exchange_identification: Connection closed by remote host"

这是我第二次遇到这种情况:我使用Vagrant创建了一个虚拟Ubuntu机器并在运行后:sudoapt-get更新sudoapt-get升级我明白了:default:SSHusername:vagrantdefault:SSHauthmethod:privatekeydefault:Warning:Remoteconnectiondisconnect.Retrying...default:Warning:Remoteconnectiondisconnect.Retrying...default:Warning:Remoteconnectiondisconnect.Retrying...

c - 串口卡在 close() 上

我开发了这个简单的内核模块,它通过使用FIFO队列和定时器来模拟串口(从硬件读取:从队列中取出,写入硬件:插入到队列中)。源代码如下所示。#include#include#include#include#include#include#include#include#include#defineTINY_SERIAL_DEBUG#definepr_fmt(fmt)"tiny_serial:"fmt#ifdefined(TINY_SERIAL_DEBUG)#defineDBG(fmt,...)printk(KERN_ALERTpr_fmt(fmt),##__VA_ARGS__)#else

c - O_DIRECT 与 Linux/FreeBSD 上的 O_SYNC

我正在编写一个在Linux和FreeBSD上都运行的程序,我想确保当每个write()返回时,数据确实写入了物理设备上的文件,这样我的数据就不会意外丢失(例如,断电、过程意外中断等)。根据OPEN(2)手册页,在Linux(高于2.6)上,O_DIRECT是同步的,但可能存在性能问题;在FreeBSD上,O_DIRECT不保证同步,也可能有问题。那么,在Linux上,O_DIRECT和O_SYNC都可以保证同步写入,但是哪个性能更好呢?在FreeBSD上,为了保证同步写入,哪个选项性能最好:(1)O_DIRECT+fsync()(2)O_DIRECT|O_SYNC还是(3)O_SYNC

linux - 为什么 close_on_exec 不是默认配置?

因为似乎没有办法在exec之后使用已经打开的fd,为什么这个标志不是默认的? 最佳答案 文件描述符可以在exec调用之后使用;例如,这就是Unix实用程序从shell获取标准输入/输出/错误fds的方式。Close-on-exec不是默认设置,因为POSIXstandard(和Unix传统)要求相反的行为:Filedescriptorsopeninthecallingprocessimageshallremainopeninthenewprocessimage,exceptforthosewhoseclose-on-execflag

php - ZipArchive::close():无法在 AWS EC2 Linux 中创建临时文件

我正在laravel5.2中处理cron作业,当我尝试从计划中调用Controller函数以创建excel表时出现错误。但在postman中运行良好。ZipArchive::close():创建临时文件失败:/var/www/html/Expenses/vendor/phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel2007.php中没有这样的文件或目录:398zipArchive的临时文件权限有问题吗?将phpexcel工作表保存到目录(777)时出现上述错误。$excel_path='SubmittedSheets/'.$userId.

c++ - RAII 套接字 : when to release (close)

我想在C套接字上编写一个简单的小型C++RAII包装器。问题是套接字在什么状态下被认为已初始化(从RAII的角度来看)并因此有资格发布。例如,对于TCP客户端套接字:如果socket调用成功,但connect调用失败,是否应该调用close?这只是一个例子,我对一般答案感兴趣,比如:socket成功创建的每个套接字都必须关闭。或必须为每个connect、listen或accept关闭。socket&friends和close的手册页不是很清楚(至少对我而言)。 最佳答案 套接字配对的两个部分是socket()和close()以及co

c - 真的不检查close()的返回值: how serious,吗?

Linux的“手动关闭”警告(SVr4、4.3BSD,POSIX.1-2001):Notcheckingthereturnvalueofclose()isacommonbutneverthelessseriousprogrammingerror.Itisquitepossiblethaterrorsonapreviouswrite(2)operationarefirstreportedatthefinalclose().Notcheckingthereturnvaluewhenclosingthefilemayleadtosilentlossofdata.Thiscanespecial

c - fflush、fsync 和 sync 与内存层

我知道已经有类似的问题了,我看了看,但找不到明确、明确的答案来回答我的问题。我只是在网上调查这些功能及其与内存层的关系。特别是我发现这个美丽的article这让我对内存层有了很好的了解似乎fflush()将数据从应用程序移动到内核文件系统缓冲区,没关系,每个人似乎都同意这一点。唯一让我感到困惑的是,在同一篇文章中,他们假设一个写回缓存说fsync()“数据被保存到稳定的存储层”,然后他们添加了“存储本身可能将数据存储在回写缓存中,因此使用O_DIRECT打开的文件仍然需要fsync()以便将数据保存到稳定的存储中”阅读here和there看起来事实是fsync()和sync()让数据进

c - 检查 close() 错误的原因是什么?

注意:请在将其标记为重复之前阅读到最后。虽然它很相似,但我在答案中寻找的范围超出了上一个问题的要求。我倾向于同意的广泛做法倾向于将close纯粹视为文件描述符的资源释放函数,而不是具有有意义的失败案例的潜在IO操作。事实上,在theresolutionofissue529之前,POSIX在错误发生后未指定文件描述符的状态(即它是否仍在分配),使得无法以任何有意义的方式对错误做出可移植的响应。但是,许多GNU软件会竭尽全力检查close和Linuxmanpageforclose的错误。称未能这样做是“一个常见但仍然严重的编程错误”。NFS和配额被引用为close可能产生错误但未提供详细信

linux - Linux 是否保证文件内容在 close() 后刷新到磁盘?

当使用close()或fclose()关闭文件时(例如),Linux是否保证文件被写回(永久)磁盘?我的意思是,如果close()返回0,然后立即断电,是否保证之前写入的数据持久存在,即持久?fsync()系统调用确实提供了这种保证。关闭文件也足够了吗?目前我找不到任何以这种或那种方式提出声明的东西。问题二:如果close()确实隐式地执行了一个fsync(),有没有办法告诉它不要这样做? 最佳答案 来自“man2close”:Asuccessfulclosedoesnotguaranteethatthedatahasbeensuc