Questions tagged «posix»

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


5
杀死给定用户的所有进程
是否存在杀死给定用户的所有进程的可靠方法?kill(-1, SIGKILL)除非该用户的恶意进程先杀死了该杀死进程,否则该用户将继续工作。到目前为止,我能找到的最好的办法是system("ps -u")为该用户循环访问并以这种方式终止进程,但这似乎确实很麻烦且效率低下。 编辑:为澄清起见,我专门要求兼容POSIX的解决方案。由于某种原因,我认为标记问题posix会将其放在标题中。
74 posix 


4
C标准库和C POSIX库之间的区别
我对“ C标准库”和“ C POSIX库”感到有些困惑,因为我发现,“ C POSIX库”中定义的许多头文件也是“ C标准库”的一部分。 因此,我假设“ C standard lib”是由ANSI C组织定义的库,并且在不同平台(类似于Win32 / Unix)上有不同的实现,而“ C POSIX lib”只是“ C standard的实现”类Unix操作系统上的“ lib”,对吗? 但是“C POSIX LIB”包含了一些头在“C标准库”未指定,如<sys/types.h>,<sys/wait.h>和<pthread.h>。 以<pthread.h>为例,我相信它的“C标准库”对应的是<threads.h>,那么如果我想要写在Linux上,这头文件,我应该包括,多线程程序<pthread.h>或<threads.h>?

8
在Windows上可以重命名原子文件(带有覆盖)吗?
在POSIX系统上,rename(2)提供了原子重命名操作,包括覆盖目标文件(如果存在)以及是否允许权限。 有没有办法在Windows上获得相同的语义?我知道Vista和Server 2008上的MoveFileTransacted(),但是我需要它来支持Win2k及更高版本。 这里的关键词是原子的……解决方案一定不能以使操作处于不一致状态的任何方式失败。 我见过很多人说这在win32上是不可能的,但是我问你,真的吗? 如果可能,请提供可靠的引用。
72 windows  winapi  posix 

4
消息队列在Linux中过时了吗?
我最近在Linux中一直在使用消息队列(系统V,但是POSIX也可以),它们对于我的应用程序似乎很完美,但是在阅读了《 Unix编程的艺术》之后,我不确定它们是否真的是一个不错的选择。 http://www.faqs.org/docs/artu/ch07s02.html#id2922148 System V IPC的上层消息传递层已大大停用。在需要执行互斥锁定和在同一台计算机上运行的进程之间进行一些全局数据共享的情况下,由共享内存和信号量组成的较低层仍然具有重要的应用程序。这些System V共享内存功能演变为POSIX共享内存API,在Linux,BSD,MacOS X和Windows下受支持,但经典MacOS不支持。 http://www.faqs.org/docs/artu/ch07s03.html#id2923376 Linux和其他现代Unix中都有System V IPC功能。但是,由于它们是传统功能,因此并不经常使用。到2003年中期为止,Linux版本仍存在错误。似乎没有人足够在意修复它们。 在最新的Linux版本中,System V消息队列是否仍然存在错误?我不确定作者是否认为POSIX消息队列应该正常吗? 似乎套接字是几乎所有对象(?)的首选IPC,但是我看不到用套接字或其他方法实现消息队列是多么简单。还是我想得太复杂了? 我不知道与嵌入式Linux合作是否有意义?

14
Unix上的递归mkdir()系统调用
在阅读了具有该名称的Unix系统调用的mkdir(2)手册页之后,看来该调用不会在路径中创建中间目录,而只会在路径中创建最后一个目录。有什么方法(或其他功能)可以在不手动解析目录字符串并单独创建每个目录的情况下创建路径中的所有目录吗?
70 c  posix  unix  mkdir 

1
为什么用time()报告的时间有时比C代码中的timespec_get()的秒部分晚1秒?
以下代码段: struct timespec ts; for (int x = 0; x < 100000000; x++) { timespec_get(&ts, TIME_UTC); long cTime = (long) time(NULL); if (cTime != ts.tv_sec && ts.tv_nsec < 3000000) { printf("cTime: %ld\n", cTime); printf("ts.tv_sec: %ld\n", ts.tv_sec); printf("ts.tv_nsec: %ld\n", ts.tv_nsec); } } 产生以下输出: ... cTime: 1579268059 ts.tv_sec: 1579268060 ts.tv_nsec: 2527419 cTime: …
12 c  time  posix  timespec 
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.