草庐IT

posix_fallocate

全部标签

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")

linux - POSIX 中的 S_IRUSR 语义

我正在学习POSIXAPI,我不理解某些名称背后的逻辑。例如S_IRUSR,S_IRUSRS代表什么?我知道R和W用于读写。但是POSIX遵循什么命名约定?就像Win32遵循HungarianNotation命名一样,POSIX的命名遵循什么?对于像POSIX这样的标准,必须有它的文档...... 最佳答案 我不确定它们是否有任何意义,除了它们在sys/stat.h中。,所以S可能代表“stat”。我尝试做一些侦探工作,例如IEEEStd1003.1,2004Editionentryforsys/stat.h是这样说的:首次发布于第

linux - POSIX 消息队列通过内核空间?

我希望在单进程多线程应用程序上使用POSIX消息队列。mqueues将用于在线程之间共享数据。我对它们在Linux内核中的工作方式有些困惑。是否所有消息都经过内核空间,然后在接收时返回到用户空间?a.k.a.从用户空间线程我执行mq_send并且消息最终进入内核空间,然后在接收时它是另一个系统调用以从内核空间获取消息。如果是这样,对于高使用率的消息队列来说,这不是非常低效吗? 最佳答案 是的,它们总是通过内核(通常用于进程间通信)。如果你只是想要线程间通信,你可以通过。一个简单的工作队列(使用普通的旧互斥体)。如果您想要具有更多功能

posix 和 linux 特定功能的 C++ 包装器

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭5年前。Improvethisquestion您是否知道将posix和linux函数和结构(例如套接字或文件描述符)包装到C++类中的任何好的库?例如,我正在考虑一个基本的FileDescriptor类和一些继承类(unix套接字等),它们具有写入、读取甚至一些系统调用(sendfile、splice)等方法——所有这些都抛出异常而不是设置errno。或者一些共享内存类等。我似乎找不到类似的东西,现在我考虑自己编

regex - Perl 使用哪种 POSIX 风格的正则表达式?

具体来说,我正在使用Linux命令:$find.-regextypeposix-extended-regex''...我只想确保我使用的POSIX类型是Perl使用的类型,因为这是迄今为止我最熟悉的类型。 最佳答案 Perl已经为正则表达式定义了自己的标准。例如,有类似PCRE的系统。,代表Perl兼容正则表达式。 关于regex-Perl使用哪种POSIX风格的正则表达式?,我们在StackOverflow上找到一个类似的问题: https://stacko

c - POSIX 系统上的 `fileno(stdout) != 1` 可能吗?

假设STDOUT_FILENO,stdout文件描述符可以不同于1(stdoutneednotbeamodifiablelvalue)?例如,可以freopen("/dev/null","w",stdout)更改fileno(stdout)结果? 最佳答案 是的。测试程序:#includeintmain(){fclose(stdin);freopen("stdout.txt","w+",stdout);fprintf(stderr,"%d\n",fileno(stdout));return0;}这会在我的机器(OSX10.9.4)上

linux - 在 linux 中使用 posix 消息队列的单个发送者和多个接收者进程

有没有什么方法可以让一个写入进程在使用mq_send()将消息发送到消息队列后,多个读取进程可以使用mq_receive()读取消息。我预计1次写入mq和1次从mq读取,消息丢失。所以我只想知道我的理解是否有误。有什么方法可以让单个写入器和多个读取器进程可以使用posix消息队列进行通信。 最佳答案 是的,你的理解是正确的。您无法使用POSIX消息队列可靠地执行此操作。如果你想将相同的消息可靠地传递给不同的线程/进程,你应该为每个读者使用不同的队列。如果切换到SYSV消息队列,则可以执行此操作。Msgsnd()并且msgrcv()可

Linux POSIX 合规列表

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭3年前。Improvethisquestion我正在为指定的linux内核寻找POSIX实现函数的列表交叉引用矩阵。例如,我想使用linux内核2.6.0,但我想查看此内核的POSIX实现函数的完整列表。我在哪里可以找到这些信息?