如果我在关闭的管道中写一条消息,则程序崩溃
if (write(pipe, msg, strlen(msg)) == -1) {
printf("Error occured when trying to write to the pipe\n");
}
pipe
在写之前如何检查它是否仍然打开?
正确的方法是测试的返回码,write
然后还要检查errno
:
if (write(pipe, msg, strlen(msg)) == -1) {
if (errno == EPIPE) {
/* Closed pipe. */
}
}
但是请稍等:写入封闭的管道不仅会返回-1 errno=EPIPE
,而且还会发送一个SIGPIPE
终止进程的信号:
EPIPE fd连接到读数端关闭的管道或插座。发生这种情况时,写入过程还将收到SIGPIPE信号。
因此,在进行测试之前,您还需要 忽略SIGPIPE
:
if (signal(SIGPIPE, SIG_IGN) == SIG_ERR)
perror("signal");
假设我希望用户输入一个介于1和50之间的数字,那么我会: 但如果用户输入的数字不介于1和50之间,我希望它打印: 选择1到50之间的数字:无效数字 我该怎么做?
问题内容: 我下面的代码创建一个新数组,并将其发送到chat(jFrame)。 但是我需要修改此代码以使其工作,如果打开了聊天jframe,则不要打开新的jFrame。而是在chat jframe中打开新的选项卡。聊天框的代码是: 问题答案: 我想知道如果该窗口依赖于另一个窗口,那么是否不应该使用JDialogs而不是JFrames。 一种解决方案是使用类字段来保存对窗口(JFrame或JDial
我们使用的是Jenkins管道的艺术工厂插件,在这里定义:https://www.jfrog.com/confluence/display/RTF/Working在Jenkins中使用管道作业 是否有方法检查包是否已上载到Artifactory?
问题内容: 目前,我正在该项目中执行例程之一来处理源目录中的文件。有一个Java进程正在查找指定的目录,并尝试读取和处理文件(如果存在)。文件很大,其他第三方进程会更新它们。问题是如何检查文件是否完全写入?我正在尝试使用,但看起来即使编写过程尚未完成,它也会返回实际大小。我觉得解决方案应该取决于平台。任何帮助,将不胜感激。 更新:这个问题与重复的问题没有什么实质性的区别,但是它的答案是工作代码片段
问题内容: 我有一个简单的路线定义: 是唯一的选择吗?感觉很乱。 问题答案: 根据node.js的源代码 不返回任何内容。 如果出现问题,它将抛出一个对象。因此,您应该在一个块中编写。
我找不到任何信息来检查YouTube频道是否真的在流式传输。使用Twitch,您只需要频道名称,使用API,您可以检查是否有直播。 我不想使用OAuth,通常一个公共API密钥就足够了。就像检查频道的视频一样,我想知道该频道是否正在流式传输。