草庐IT

posix_fallocate

全部标签

linux - POSIX 共享内存和信号量权限由 open 调用错误设置

我正在尝试创建一个将由多个进程使用的共享内存,这些进程不一定由同一用户启动,因此我使用以下行创建段:fd=shm_open(SHARE_MEM_NAME,O_RDWR|O_CREAT,0606);但是,当我检查在/dev/shm中创建的文件的权限时,它们是:-rw----r--1lmccauslinlmccauslin17842012-08-1017:11/dev/shm/CubeConfigShare不是我预期的-rw----rw-。/dev/shm的权限是lrwxrwxrwx。以类似方式创建的信号量会发生完全相同的事情。内核版本:3.0.0-23-genericglibc版本:EG

linux - Unix/Linux 系统调用是 POSIX 库函数的一部分吗?

Unix/Linux系统调用是全部还是大部分是POSIX?许多Linux/Unix编程书籍都说POSIX库函数可能是OS系统调用的包装器,也可能不是。例如。http://www.makelinux.net/books/lkd2/ch05lev1sec1,和https://www.safaribooksonline.com/library/view/understanding-the-linux/0596005652/ch10s01.htmlPOSIX的一部分(称为单一UNIX规范)定义了UNIX。因此我认为POSIX定义了Unix(和Linux)的系统调用。那么Unix/Linux系统

linux - Unix/Linux 系统调用是 POSIX 库函数的一部分吗?

Unix/Linux系统调用是全部还是大部分是POSIX?许多Linux/Unix编程书籍都说POSIX库函数可能是OS系统调用的包装器,也可能不是。例如。http://www.makelinux.net/books/lkd2/ch05lev1sec1,和https://www.safaribooksonline.com/library/view/understanding-the-linux/0596005652/ch10s01.htmlPOSIX的一部分(称为单一UNIX规范)定义了UNIX。因此我认为POSIX定义了Unix(和Linux)的系统调用。那么Unix/Linux系统

linux - 本地 IPC 的 POSIX 消息队列或 unix 域套接字

我需要在客户端和服务器之间设置本地IPC。是单服务器多客户端的情况,需要双向交换数据。客户端是发送命令选项的命令,服务器获取数据并将其发送给客户端。客户端在控制台上打印从服务器接收到的输出。命令发送的数据很小,但服务器发送给命令的数据很大(~11Mb)。Windows中的现有设计使用命名管道以65KB的block发送数据。服务器需要同时向多个命令客户端发送数据,因为从不同终端同时执行具有不同选项的命令是很常见的。我省略了FIFO,因为对于大小大于4096字节的消息,来自多个进程的数据可以交错。如果我错了,请纠正我。考虑到以下两个标准,POSIX消息队列或unix域套接字哪个更好?消息的

linux - 本地 IPC 的 POSIX 消息队列或 unix 域套接字

我需要在客户端和服务器之间设置本地IPC。是单服务器多客户端的情况,需要双向交换数据。客户端是发送命令选项的命令,服务器获取数据并将其发送给客户端。客户端在控制台上打印从服务器接收到的输出。命令发送的数据很小,但服务器发送给命令的数据很大(~11Mb)。Windows中的现有设计使用命名管道以65KB的block发送数据。服务器需要同时向多个命令客户端发送数据,因为从不同终端同时执行具有不同选项的命令是很常见的。我省略了FIFO,因为对于大小大于4096字节的消息,来自多个进程的数据可以交错。如果我错了,请纠正我。考虑到以下两个标准,POSIX消息队列或unix域套接字哪个更好?消息的

linux - 内存 CAS、mmap 和 Posix 读/写的交互

如果重要的话,所有这些都是指Linux,内核版本3.13,以防Posixen之间存在不同的行为-尽管如果有人知道其他变体的情况,那将会很有趣。我目前的理解是:Posixread(2)和write(2)调用相互之间是原子的(这是Posix标准强制要求的)。如果我在该位置同时读取()一些字节和写入(),我将看到全部或没有。编辑:查看评论,对于许多文件系统,它只是按页面原子化。write(2)调用对于mmap是原子的——如果我write()到一些字节,同时通过mmap读取缓冲区,我将看到所有写入或没有写入(我相信这是并非由Posix严格强制要求,而是Linux和许多其他操作系统管理页面缓存的

linux - 内存 CAS、mmap 和 Posix 读/写的交互

如果重要的话,所有这些都是指Linux,内核版本3.13,以防Posixen之间存在不同的行为-尽管如果有人知道其他变体的情况,那将会很有趣。我目前的理解是:Posixread(2)和write(2)调用相互之间是原子的(这是Posix标准强制要求的)。如果我在该位置同时读取()一些字节和写入(),我将看到全部或没有。编辑:查看评论,对于许多文件系统,它只是按页面原子化。write(2)调用对于mmap是原子的——如果我write()到一些字节,同时通过mmap读取缓冲区,我将看到所有写入或没有写入(我相信这是并非由Posix严格强制要求,而是Linux和许多其他操作系统管理页面缓存的

linux - POSIX 消息队列 - mq_send 线程唤醒顺序

有人可以向我解释消息队列如何处理多个唤醒线程阻塞在单个消息队列上?我的情况是我有多个作者阻塞了一条完整的消息队列,每个发布消息的优先级等于线程优先。我想确保他们醒来并按优先顺序发帖,然而,我的应用程序表现得好像它们以先进先出的顺序醒来(即他们阻止的顺序)。每个阻塞线程是使用具有不同优先级的SCHED_FIFO策略进行调度系统级范围。我在Internet上上下搜索了一些描述如何这应该可以工作,我能找到的只是描述它的POSIX手册页如果优先级调度是支持。由于内核调度程序是优先调度程序我会认为线程会按优先顺序唤醒并发布到队列,但是情况似乎并非如此。我确定我是只是缺少一些细微的细节,希望这里的

linux - POSIX 消息队列 - mq_send 线程唤醒顺序

有人可以向我解释消息队列如何处理多个唤醒线程阻塞在单个消息队列上?我的情况是我有多个作者阻塞了一条完整的消息队列,每个发布消息的优先级等于线程优先。我想确保他们醒来并按优先顺序发帖,然而,我的应用程序表现得好像它们以先进先出的顺序醒来(即他们阻止的顺序)。每个阻塞线程是使用具有不同优先级的SCHED_FIFO策略进行调度系统级范围。我在Internet上上下搜索了一些描述如何这应该可以工作,我能找到的只是描述它的POSIX手册页如果优先级调度是支持。由于内核调度程序是优先调度程序我会认为线程会按优先顺序唤醒并发布到队列,但是情况似乎并非如此。我确定我是只是缺少一些细微的细节,希望这里的

php - 在 Linux 中使用 PHP 的 posix_kill() 导致奇怪的行为

我正在创建一个网页,用于监视和控制一些自定义C程序。我创建了一个页面,它将启动/停止一个C程序“启动器”(漂亮的通用名称),然后fork并创建许多子进程。开始工作正常-exec("cdlauncher_dir;nohup./launcher>outfile2>&1&");停止是有问题的地方。单击停止按钮后,两件事中的一件会随机发生。要么存在浏览器错误页面(101ConnectionReset或324EmptyResponse),要么页面加载了两次,但您只看到了第二次。我知道它加载两次的原因是因为代码中的调试消息。在这两种情况下,启动器进程都会被终止(发送SIGTERM)。但是如果页面加