草庐IT

tsk_fs_open_img

全部标签

c++ - 尝试打开管道进行读取时 open() 阻塞

我有两个进程,一个服务器和一个客户端,它们应该通过管道(C++、Linux)进行通信。服务器使用O_RDONLY标志打开管道,客户端使用O_WRONLY。但是,服务器在open函数处阻塞,而客户端似乎运行成功(open函数返回成功,write函数也是如此).我读过如果设置了O_NONBLOCK标志,读取功能将继续,但如果没有客户端连接我不希望它继续-可以阻止直到客户端连接,但在我的情况下,即使在客户端完成运行后它仍然被阻止......你能告诉我我做错了什么吗...?代码如下://Serversideintpipe;intstatus,nr_read=0;status=mkfifo(FI

c - 远程文件系统上的 open() 系统调用会阻塞吗?

我想知道如果文件系统挂载为远程设备(例如Ceph文件系统或NFS)并且存在某种网络故障,Linux最新内核中的open()系统调用是否会阻塞? 最佳答案 是的。多长时间取决于上行链路的速度(和状态),但您的进程或线程将阻塞,直到远程操作完成。NFS在这方面有点臭名昭著,一些FUSE文件系统处理任何具有文件句柄的阻塞,但您将阻塞open()、read()和write(),通常受网络和其他系统的支配。不要使用O_NONBLOCK来绕过它,否则您可能会读取或写入黑洞(无论如何都会阻塞)。 关于

php - 未知 : Failed opening required '0ff' (include_path ='.:/tmp:/usr/lib/php:/usr/local/lib/php' ) in Unknown on line 0

我今天收到以下错误。我没有对我的PHP程序进行任何更改。Warning:Unknown:failedtoopenstream:NosuchfileordirectoryinUnknownonline0Warning:Unknown:failedtoopenstream:NosuchfileordirectoryinUnknownonline0Fatalerror:Unknown:Failedopeningrequired'0ff'(include_path='.:/tmp:/usr/lib/php:/usr/local/lib/php')inUnknownonline0....几个小时

linux - Linux内核设备驱动中的filp_open

filp_open允许我们打开文件系统中的文件。但是从内核空间使用安全吗?如果使用需要注意什么。这是否也会在未来的Linux内核版本中得到支持。目前使用2.6.28Linux内核版本。 最佳答案 很多驱动程序都使用filp_open()函数,它是在内核空间中打开文件的好helper。没有理由认为它不会继续得到支持。甚至内核的文件系统子系统也使用filp_open()。 关于linux-Linux内核设备驱动中的filp_open,我们在StackOverflow上找到一个类似的问题:

linux - C 我可以按字母顺序使用 open dir 打开目录的文件吗?

在Windows中,当您使用opendir和dirent打开文件时,它会按字母顺序为您提供文件,但在linux中,没有任何方法可以在linux中对文件进行排序吗? 最佳答案 不,readdir()以任意顺序返回目录条目,通常是它们在文件系统中存在的顺序。如果您希望它们按某些标准排序,请自行对它们进行排序。 关于linux-C我可以按字母顺序使用opendir打开目录的文件吗?,我们在StackOverflow上找到一个类似的问题: https://stacko

C++ : Opening a file in non exclusive mode

我必须开发一个应用程序来解析日志文件并将特定数据发送到服务器。它必须在Linux和Windows上运行。当我想测试日志滚动系统时出现问题(它将.1附加到名称后创建一个具有相同名称的新系统)。在Windows上(尚未在Linux上测试过)我无法重命名用std::ifstream()(独占访问?)打开的文件,即使我在“输入模式”(ios::in)中打开它.是否有跨平台的方式以非独占方式打开文件? 最佳答案 Isthereawaytoopenfileinanon-exclusiveway,是的,使用Win32,将各种FILE_SHARE_

c - statvfs() 为文件系统计算的已用空间大于 fs 中所有文件大小的总和

我有一个50MiB的小分区,格式为ext4,只有一个目录包含一组照片,挂载在/mnt/tmp上。然后我使用statvfs()计算分区中使用的字节数,使用lstat()计算里面每个文件的大小,为此我写了这个程序:#include#include#include#include#include#include#include#include#include//Theamountofbytesofallfilesfounduint64_ttotalFilesSize=0;//SizeforasectorinthefsunsignedintsectorSize=0;voidreadDir(ch

linux - SIPP : open file limit > FD_SETSIZE

实际上,我尝试使用带有java的bash控制台在opensuse11上启动SIPP3.3。当我用开始SIPP时proc=Runtime.getRuntime().exec("/bin/bash",null,wd);...printWriter.println("./sipp-i"+Config.IP+"-sfuac.xml"+Config.IP+":5060");错误流给出以下输出Warning:openfilelimit>FD_SETSIZE;limitingmax.#ofopenfilestoFD_SETSIZE=1024Resolvingremotehost'137.58.120

c - mq_open : Invalid argument

我正在尝试为在manpage中找到的POSIX消息队列运行示例程序对于mq_notify。我以./mq'/bla'运行它,它给我错误mq_open:Invalidargument。这是示例程序中出现错误的行:mqdes=mq_open(argv[1],O_RDONLY);我试过把它改成mqdes=mq_open("/bla",O_RDONLY|O_CREAT);但还是不行。这一定很简单,但我想不通。我做错了什么?顺便说一句,这是RHEL5.8。编辑:第一个错误我错了。如果没有O_CREAT,它会说“没有这样的文件或目录”。我猜它试图打开一个不存在的消息队列。对于O_CREAT,我认为无

php exec/shell_exec/system/popen/proc_open 在 linux 上无限次运行调用脚本本身

我有一个脚本,它使用php-l检查php文件中的语法错误。它在Windows中运行良好,但在Linux中输出不正确:正在检查语法错误的文件exec_ip.php的内容是(它有要检查的语法错误):脚本是:$slash=file_get_contents('exec_ip.php');//echo$slash;$tmpfname=tempnam("tmp","PHPFile");file_put_contents($tmpfname,$slash);exec("php-l".$tmpfname,$error);$errtext='';foreach($erroras$errline)$er