草庐IT

write-stuff

全部标签

c - 在库中调用 write(2) 时禁用 SIGPIPE 信号

问题是否可以在写入pipe()FD时禁用信号(SIGPIPE)的提升,无需安装我自己的信号处理程序或禁用/在全局范围内屏蔽信号?背景我正在开发一个小型库,它偶尔会创建一个管道,fork()是一个临时的子/虚拟进程,它等待来自父进程的消息。当子进程收到来自父进程的消息时,它就死掉了(有意的)。问题子进程,在我无法控制的情况下,运行来自另一个(第三方)库的代码,这很容易崩溃,所以在我write()之前我不能总是确定子进程是活的到管道。这导致我有时会尝试write()到子进程端已经死/关闭的管道,并在父进程中引发SIGPIPE.我在其他客户将要使用的库中,因此我的库必须尽可能独立并对调用应用

linux - write() 时出现段错误,缓冲区约为 8MB(OSX、Linux)

我很好奇write()和read()在Linux/OSX/FreeBSD上可以处理什么样的缓冲区大小,所以我开始尝试像下面这样的愚蠢程序:#include#include#include#include#includeintmain(void){size_ts=8*1024*1024-16*1024;while(1){s+=1024;intf=open("test.txt",O_CREAT|O_WRONLY|O_TRUNC,S_IRUSR|S_IWUSR|S_IXUSR);charmem[s];size_twritten=write(f,&mem[0],s);close(f);prin

c - C中的write()函数是阻塞的还是非阻塞的?

我在Linux手册页上寻找答案,但似乎找不到。我知道read()是阻塞的,但我仍然不确定write()。谁能指出任何文件以供澄清? 最佳答案 在read()上阅读POSIX和write().另请参阅open()等函数和pipe().这取决于您正在读取或写入的文件描述符的属性(例如O_NONBLOCK),以及底层文件类型(磁盘文件、管道、FIFO和套接字)vs字符或特殊block),等等。简而言之,read()和write()都可以是阻塞的或非阻塞的,这取决于具体情况。 关于c-C中的wr

MongoDb 与 Cassandra :Read/Write myths?

在网上阅读几篇关于MongoDB与Cassandra读/写性能的文章,写一般来说,Cassandra的写入性能在数据量很大的情况下比Mongo的要好。请参阅下面的声明。Cassandra'sstorageengineprovidesconstant-timewritesnomatterhowbigyourdatasetgrows.WritesaremoreproblematicinMongoDB,partlybecauseoftheb-treebasedstorageengine,butmorebecauseoftheperdatabasewritelock.这是我的问题:-这个陈述仍

MongoDb 与 Cassandra :Read/Write myths?

在网上阅读几篇关于MongoDB与Cassandra读/写性能的文章,写一般来说,Cassandra的写入性能在数据量很大的情况下比Mongo的要好。请参阅下面的声明。Cassandra'sstorageengineprovidesconstant-timewritesnomatterhowbigyourdatasetgrows.WritesaremoreproblematicinMongoDB,partlybecauseoftheb-treebasedstorageengine,butmorebecauseoftheperdatabasewritelock.这是我的问题:-这个陈述仍

linux - Shell GNU-Screen -X Stuff 问题

OPTIONS="java-Xms1024M-Xmx1024M-jarcraftbukkit.jar"PROCESS=server01screen-dmS$PROCESS$OPTIONSnogui#Startingtheapplicationscreen-x$PROCESS-Xstuff`printf"stop\r"`#Closingtheapplicationscreen-x$PROCESS#Attachingtotheterminaloftheapplication该应用程序在开始时运行良好,但是我在使用stuff'printf"stop/r"'时遇到问题刚启动的时候好像不行,等了

linux - E138 : Can't write viminfo file $HOME/. 虚拟信息

关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭9年前。Improvethisquestion我在生产环境中使用opensuse。我以“测试”用户身份登录并尝试使用“vi”编辑文件但是当我要保存时该文件显示以下错误**E138:Can'twriteviminfofile/home/test/.viminfo**在“测试”用户下,所有文件和文件夹自动变为只读。我正在尝试使用“root”用户更改权限但无法更改。我也寻找像“~/.viminf*”这样的临时文件,但没有这样的东西。不知道怎么办,

linux - 从多个线程对同一个 TCP 套接字发出阻塞 write() 调用是否安全?

假设我有两个线程,T1和T2。线程T1在TCP套接字S上进行阻塞write()调用,以发送一个大的字节缓冲区B1。字节B1的缓冲区太大,以至于(a)写调用阻塞和(b)TCP必须使用多个段来发送缓冲区。线程T2还在同一TCP套接字S上进行阻塞write()调用,以发送其他一些大字节缓冲区B2。我的问题是:TCP在UNIX上的实现是否保证B1的所有字节将在B2的所有字节之前发送(反之亦然)?或者TCP是否可能交织B1和B2的内容(例如,TCP发送一个包含B1数据的段,然后发送一个包含B2数据的段,然后再次发送一个包含B1数据的段)。PS-我知道这样做不是一个好主意。我正在尝试确定某些不是我

python - MPRIS + Python (dbus) : reading and writing properties

我已经检查过这个链接:Howtohandlepropertiesofadbusinterfacewithpython.但是,那只列出了一个API...但我不知道该API来自哪里。我刚开始在python上使用dbus(对此非常兴奋,老实说^__^只是对我找到的文档不太满意),我想知道我是否可以得到一些示例代码。我专门为Rhythmbox使用MPRIS,尽管它“应该”对所有人都一样。我知道我可以通过执行以下操作访问方法并从中获得乐趣:importdbusbus=dbus.SessionBus()proxy=bus.get_object('org.mpris.MediaPlayer2.rhy

php - "write failed: No space left on device"是什么意思?

我在我的网站上收到这些错误,但我没有更改任何代码或任何东西,所以我不知道为什么会这样。Warning:Unknown():writefailed:Nospaceleftondevice(28)inUnknownonline0Warning:Unknown():Failedtowritesessiondata(files).Pleaseverifythatthecurrentsettingofsession.save_pathiscorrect(/tmp)inUnknownonline0 最佳答案 我假设您在共享托管服务提供商上托管您