草庐IT

posix_kill

全部标签

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等)谢谢

c/linux无限循环应用: deallocate memory if kill -9 command is called

我在Linux中开发了一个C应用程序,其中包含一个无限循环while(1)。有一些指针是动态分配的,在无限循环下很有用,所以释放内存的唯一时间是在ctrl-z中断while(1)之后,ctrl-c,kill-9apppid,killallappname。所以我的想法是关联新的处理程序,将内存释放给中断事件信号。voiddeallocatehandler(intsignal){printf("MemoryDeallocation\n");exit(0);}intmain(){signal(SIGINT,&deallocatehandler);signal(SIGTSTP,&dealloc

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++ - 我的程序是 "Killed"

可能是由内核建议的question.我想看看我为什么会被杀,比如暗杀事件发生的原因。:)另外,有什么办法可以让我的程序正常执行吗?编年史我的程序正确执行。然而,我们遇到了一个大数据集,1.000.000x960float,而我在家里的笔记本电脑无法接受它(给了一个std::bad_alloc())。现在,我在实验室里,在9.8GiB的台式机上,处理器为3.00GHz×4,其内存是家里笔记本电脑的两倍多。在家里,无法将数据集加载到存储数据的std::vector中。在这里,在实验室中,这已经完成,程序继续构建数据结构。那是我最后一次听到它:Startbuilding...Killed实验

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

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