草庐IT

close_fds

全部标签

linux - 我可以依靠 Linux close() 不阻塞文件 I/O 吗?

我正在使用Linuxaio(io_submit()/io_getevents())进行文件I/O。由于某些操作没有aio等效项(open()、fsync()、fallocate()),我使用了一个工作线程,它可能阻塞而不影响主线程。我的问题是,我应该将close()添加到这个列表吗?所有文件都在XFS上使用O_DIRECT打开,但我对问题的一般答案以及与我选择的文件系统和打开模式有关的具体答案都感兴趣。请注意,为close()使用工作线程并非易事,因为close()通常在清理路径中调用,这不是启动工作线程请求并等待它。所以我希望close()在这种情况下是非阻塞的。对于这个问题,“阻塞

java - spring boot init.d 脚本 start-stop-daemon : unrecognized option --no-close

在将我的应用符号链接(symboliclink)到/etc/init.d/myappname之后。/etc/init.d/myappnamestartgives"Failedtostart"/var/log/appname.log告诉"start-stop-daemon:unrecognizedoption'--no-close'"当我删除--no-close时,jar已损坏且无法再运行。我很震惊。bdw我的jar是完全可执行的jar。即,当我单独运行jar时,它会正常启动springboot。这里出了什么问题?编辑:do_start(){working_dir=$(dirname"$

linux - Linux selenium自动化测试问题: firefox can't be closed automatically

我正在通过selenium(seleniumRC)在Linux中运行WebGUI的自动化测试。其实我可以在windows下跑selenium自动化测试,结果还可以,测试结束后可以自动关闭firefox。但是当我在linux下测试selenium的时候,发现测试结束后firefox不能自动​​关闭。我知道测试脚本默认会调用tearDown函数,所以火狐应该关闭。但是为什么在Linux下,firefox不能自动​​关机呢?处理这个问题:我重写了tearDown函数,如下所示:publicvoidtearDown()throwsException{selenium.click("link=L

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

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 - 检查 close() 错误的原因是什么?

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