Questions tagged «posix»

POSIX(便携式操作系统接口)是一组标准,这些标准定义了类Unix操作系统的编程API,命令解释器和通用实用程序。

4
在UNIX中,文件追加是原子的吗?
通常,当我们从多个进程附加到UNIX中的文件时,我们可以理所当然地做什么呢?是否有可能丢失数据(一个进程覆盖另一个进程的更改)?数据有可能被破坏吗?(例如,每个进程向日志文件中的每个追加追加一行,是否有可能两行被整顿?)如果从上述意义上说,追加不是原子的,那么确保互斥的最佳方法是什么?

6
SIGINT与其他终止信号(例如SIGTERM,SIGQUIT和SIGKILL)有何关系?
在POSIX系统上,终止信号通常具有以下顺序(根据许多MAN页和POSIX规范): SIGTERM-礼貌地要求进程终止。它应正常终止,清理所有资源(文件,套接字,子进程等),删除临时文件等。 SIGQUIT-更有力的要求。它会终止不合时宜的情况,仍然清理绝对需要清理的资源,但可能不会删除临时文件,可能会在某些地方写入调试信息;在某些系统上,还将写入核心转储(无论信号是否被应用捕获)。 SIGKILL-最有力的要求。甚至不要求该过程做任何事情,但是系统会清理该过程,无论它是否喜欢。最有可能写入了核心转储。 SIGINT如何适合该图片?用户单击CRTL + C时,CLI进程通常由SIGINT终止,但是SIGINT也可以使用KILL实用程序终止后台进程。我在规范或头文件中看不到的是SIGINT比SIGTERM强多少,或者SIGINT和SIGTERM之间根本没有区别。 更新: 到目前为止,我对终止信号的最佳描述是在GNU LibC文档中。它很好地说明了SIGTERM和SIGQUIT之间存在预期的差异。 它说关于SIGTERM: 礼貌地要求程序终止是正常的方法。 它说到SIGQUIT: 终止程序时会产生核心转储,就像程序错误信号一样。您可以将其视为用户“检测到”的程序错误情况。[...]在处理SIGQUIT时最好省略某些类型的清理。例如,如果程序创建了临时文件,则应通过删除临时文件来处理其他终止请求。但是最好不要删除SIGQUIT,以便用户可以与核心转储一起检查它们。 SIGHUP也得到了很好的解释。SIGHUP并不是真正的终止信号,它仅表示与用户的“连接”已丢失,因此应用程序无法期望用户读取任何进一步的输出(例如stdout / stderr输出),并且没有期望输入用户了。对于大多数应用程序来说,最好退出。从理论上讲,当收到SIGHUP并现在作为后台进程运行时,应用程序还可以决定将其进入守护程序模式,将输出写入已配置的日志文件。对于大多数已经在后台运行的守护程序,SIGHUP通常意味着它们应重新检查其配置文件,因此您在编辑配置文件后将其发送到后台进程。 但是,此页面上没有SIGINT的有用解释,除了它是由CRTL + C发送的。是否有任何理由会以不同于SIGTERM的方式处理SIGINT?如果是这样,这将是什么原因?处理方式会有什么不同?
103 linux  unix  posix 




7
如何从POSIX文件描述符构造c ++ fstream?
我基本上是在寻找fdopen()的C ++版本。我对此进行了一些研究,这似乎是一件容易的事,但事实却很复杂。我是否出于这种信念而错过了某些东西(即确实很容易)?如果不是,是否有一个好的图书馆可以解决这个问题? 编辑:将我的示例解决方案移到一个单独的答案。

4
POSIX异步I / O(AIO)的状态是什么?
网上散布着许多页面,这些页面以不同的细节描述了POSIX AIO设备。他们都不是最近的。目前尚不清楚他们在描述什么。例如,这里的Linux内核异步I / O支持的“官方”(?)网站说套接字不起作用,但是Ubuntu 8.04.1工作站上的“ aio.h”手册页似乎都暗示着它适用于任意文件描述符。然后还有另一个项目似乎在库层工作,甚至需要更少的文档。 我想知道: POSIX AIO的目的是什么?考虑到我能找到的最明显的实现示例说它不支持套接字,所以整个事情对我来说很奇怪。它仅用于异步磁盘I / O吗?如果是这样,为什么要使用超通用API?如果不是,为什么磁盘I / O成为首先受到攻击的东西? 在哪里可以找到完整的 POSIX AIO程序示例示例? 有人真正使用过它吗? 哪些平台支持POSIX AIO?他们支持哪一部分?有人真的支持<aio.h>似乎可以保证的隐含“任何FD的任何I / O” 吗? 我可以使用的其他多路复用机制非常好,但是随处可见的随机信息碎片使我感到好奇。
93 linux  asynchronous  posix  bsd  aio 

5
SIGPIPE为什么存在?
根据我的理解,SIGPIPE只能作为a的结果出现write(),它可以(并且确实)返回-1并设置errno为EPIPE...那么,为什么我们会有信号的额外开销?每次使用管道时,我都会忽略SIGPIPE并且从未感到任何痛苦,这是我缺少的东西吗?
92 posix 

7
将年月(“ yyyy-mm”格式)转换为日期?
我有一个看起来像这样的数据集: Month count 2009-01 12 2009-02 310 2009-03 2379 2009-04 234 2009-05 14 2009-08 1 2009-09 34 2009-10 2386 我想绘制数据(月份为x值,计数为y值)。由于数据中存在空白,因此我想将本月的信息转换为日期。我试过了: as.Date("2009-03", "%Y-%m") 但这没有用。怎么了?似乎as.Date()也需要一天,并且无法为该天设置标准值吗?哪个功能可以解决我的问题?
91 r  date  posix  zoo  r-faq 



3
如何从文件描述符获取FILE指针?
我正在使用mkstemp(),它提供了文件描述符,但是我想通过生成格式化的输出fprintf()。有没有一种简单的方法可以将所提供的文件描述符mkstemp()转换FILE *为适合用于的结构fprintf()?
85 c  posix  mkstemp 


5
snprintf()总是终止为null吗?
snprintf是否始终为null终止目标缓冲区? 换句话说,这是否足够: char dst[10]; snprintf(dst, sizeof (dst), "blah %s", somestr); 还是如果somestr足够长,您必须这样做吗? char dst[10]; somestr[sizeof (dst) - 1] = '\0'; snprintf(dst, sizeof (dst) - 1, "blah %s", somestr); 我对标准所说的内容以及某些流行的libc可能做什么(这不是标准行为)都感兴趣。
82 c  posix  libc 


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.