草庐IT

posix_spawnp

全部标签

c - 为什么在 POSIX 中创建消息队列时出现错误 "Cannot Allocate Memory"?

为什么在POSIX中创建消息队列时出现“无法分配内存”错误? 最佳答案 Adrian的回答是正确的,但由于这是一个令人沮丧的常见错误,当第一次尝试将POSIX消息队列用于任何非平凡的事情时,在Linux上会遇到这个错误,我想我应该添加一些有用的细节。首先,要了解RLIMIT_MSGQUEUE资源限制,请参阅mansetrlimit中的公式:RLIMIT_MSGQUEUE(SinceLinux2.6.8)SpecifiesthelimitonthenumberofbytesthatcanbeallocatedforPOSIXmessa

Linux 新手 : Linux vs POSIX manual

$aproposmkfifomkfifo(1)-makeFIFOs(namedpipes)mkfifo(1posix)-makeFIFOspecialfilesmkfifo(3)-makeaFIFOspecialfile(anamedpipe)mkfifo(3posix)-makeaFIFOspecialfilemkfifoat(3)-makeaFIFO(namedpipe)relativetoadirectoryfile...所以我有Linux程序员手册和POSIX程序员手册的手册页。我应该更喜欢哪个?为什么?(我正在编写一个Linux应用程序,不打算将它移植到AIX、BSD等)谢谢

linux - 在 Linux 上使用 POSIX AIO 库编译 C++ 程序

在Linux上编译使用POSIXaio库(例如aio_read()、aio_write()等)的示例程序时,我在使用链接器时遇到困难。我正在使用2.6内核运行Ubuntu,并使用apt-get实用程序安装libaio。但是即使我正在链接aio库,编译器仍然给我链接器错误。root@ubuntu:/home#g++-L/usr/lib/libaio.aaio.cc-oaio/tmp/cc5OE58r.o:Infunction`main':aio.cc:(.text+0x156):undefinedreferenceto`aio_read'aio.cc:(.text+0x17b):unde

在深度嵌套的源/makefile 中正确包含 (POSIX) 库

长话短说:我们有一个大型SDK,其中包含约1Gb的毛茸茸的代码,这些代码由ElbonianCodeSlaves破解在一起,由RPC、共享内存、互斥/信号量和spit的颤动网格拼接在一起。它是在Linux机器上为嵌入式SoC目标编译的。作为改进部分代码的一部分,我想将POSIX信号量添加到其中一个源中,它包含在一些RPC例程中。但是,只需编写一些有效的代码并坚持#include在顶部当然不足以启用编译。所需要的是makefile中的特殊标志,具体取决于您阅读的内容,它可以是任何/所有:-pthread-lpthread-lpthreads-lrt-rt我没有太多编写makefile的经验

c - Posix Timer 周期性地向前跳过其周期的一半

我有一个任务链接到每20毫秒/50赫兹执行一次的Posix定时器(timer_create())。大多数情况下工作正常,除了每334.5秒(大约)定时器提前10毫秒执行一个周期。在接下来的334.5秒左右,间隔再次全部为20毫秒。我已经包含了配置定时器的相关代码。该应用程序在Gumstix的默认Linux版本的GumstixVerdexProXL6P上运行。我还使用FIFO调度算法对其进行了调度。我的直觉告诉我这是一个整数溢出问题。也许还有其他东西使用相同的信号?我一直能够在董事会的执行和session中重现跳过。这个问题不是问题,但我真的很想了解为什么会这样。下面是配置定时器的代码:

c - Posix 共享内存初始化

我的问题是关于初始化使用shm_open()和mmap()获得的内存。我在几个地方看到的一个常见建议是使用标志O_CREAT|O_EXCL调用shm_open():如果成功,那么我们就是共享内存的第一个用户,并且可以初始化它,否则我们不是第一个并且共享内存已经被另一个进程初始化。但是,根据我对shm_open的理解以及我在Linux上所做的测试,这行不通:共享内存对象会留在系统中,即使在最后一个用户之后也是如此共享内存对象已取消映射并关闭。一个使用O_CREAT|O_EXCL调用shm_open,然后关闭描述符并退出的简单测试程序将在第一次运行时成功,但在第二次运行时仍然会失败,即使尽

java - JRE 是否支持 posix TZ 描述而不是 TZ 名称?

当操作系统使用POSIX时区描述而不是时区名称时,Java似乎不会应用DST偏移量。JRE不支持使用TZ描述,还是此行为是错误?更多详情...我在基于Linux(Debian)的系统上工作,其中TZ环境变量设置为POSIX格式的TZ,如STD+7DST+6,M3.2.0/02:00:00,M11.1.0/02:00:00而不是TZ名称,例如America/Denver。(参见TZVariable)虽然这对于date和相关系统工具似乎可以正常工作,但当我尝试在java应用程序中查找时间时,它似乎没有针对DST进行正确调整。这会导致DST生效的一年中部分时间出现错误。我已经在几个不同的系统

c - POSIX C API 中的随机数

我希望在POSIX系统上生成大的非负整数随机值。我找到了2个符合条件的可能函数,以及它们各自的初始值设定项:#includelongintrandom(void);voidsrandom(unsignedintseed);CONFORMINGTO4.3BSD,POSIX.1-2001.//andlongintlrand48(void);voidsrand48(longintseedval);CONFORMINGTOSVr4,POSIX.1-2001.首选哪些函数(线程安全和生成的值范围)?鉴于安全性不是问题,我应该如何为它们播种?播种方法是否应该因播种函数的不同参数(longint与u

c - Linux 上 C 中的 POSIX 线程和全局变量

如果我有两个线程和一个全局变量(一个线程不断循环读取变量;另一个不断循环写入变量)会发生什么不该发生的事情吗?(例如:异常、错误)。如果是,请采取什么方法来防止这种情况发生。我正在阅读有关互斥锁的信息,它们允许一个线程独占访问一个变量。这是否意味着只有该线程可以读取和写入它而没有其他线程? 最佳答案 Wouldanythinghappenthatshouldn't?这部分取决于变量的类型。例如,如果变量是一个字符串(长字符数组),那么如果作者和读者同时访问它,那么读者将看到什么是完全不确定的。这就是pthreads提供互斥锁和其他协

c - 子 POSIX 线程如何被取消

//threadA.cintmain(){intres;pthread_ta_thread;void*thread_result;res=pthread_create(&a_thread,NULL,thread_function,NULL);if(res!=0){perror("Threadcreationfailed");exit(EXIT_FAILURE);}sleep(3);printf("Cancelingthread...\n");res=pthread_cancel(a_thread);if(res!=0){perror("Threadcancelationfailed")