草庐IT

sys_fork

全部标签

python - 创建触发器 sys_exec 和 python

我在/usr/esercizi/上的python是:#!/usr/bin/pythonimportdatetimenow=datetime.datetime.now()aa=now.strftime("%Y-%d-%m%H:%M|%S")out_file=open("/usr/esercizi/test.txt","w")out_file.write("Ladatadioggi\n\n")out_file.write(aa)out_file.close()为测试目的而制作我喜欢从TRIGGER调用它:mysql>CREATETRIGGER`notifica_cambiamenti`AF

linux - fork 和IPC机制

我正在编写一个单线程内存密集型概念验证应用程序。该应用程序本身不会处理太多数据,主要加载数GB的数据,然后对其进行一些数据分析。我不想通过MT实现来管理并发,不想必须实现锁(即互斥锁、自旋锁……)所以这次我决定使用亲爱的旧fork()。在内存为CoW的Linux上,我应该能够有效地分析相同的数据集,而无需显式复制它们并使用简单的并行单线程逻辑(同样,这是一个概念证明)。现在我生成了子进程,使用fork()很容易为子任务设置输入参数(子进程在这种情况下),但我必须将结果返回到主进程。有时这些结果10GB大。我想到的所有IPC机制是:PIPEs/Sockets(然后是epoll,相当于以单

c - syscalls.h 中的 sys_ 函数未定义

我只是在制作一个内核模块。我遇到了这个警告:WARNING:"sys_getpid"[/PATH/NAME.ko]undefined!WARNING:"sys_stat"[/PATH/NAME.ko]undefined!WARNING:"sys_rmdir"[/PATH/NAME.ko]undefined!WARNING:"sys_mremap"[/PATH/NAME.ko]undefined!WARNING:"sys_fchmod"[/PATH/NAME.ko]undefined!WARNING:"sys_gettimeofday"[/PATH/NAME.ko]undefined!W

c - Fork-exec 管道重定向问题

谁能告诉我这段代码有什么问题吗?总之,它创建了输入和输出管道以及fork-exec的sort程序。父级读取字典/usr/share/dict/words并将其写入dup2()的管道以排序's是标准的,同样,从它读取输出,打印到终端(父级的标准输出)。或者,至少,这是应该发生的事情。回溯表明父级在第130行的read()处挂起(标有注释“XXX”)。这几乎就像sort不知道文件结尾一样,但是关闭pipeIn的写入端应该“发出信号”,对吗?#include#include#include#include#include#include#include#includeintmain(inta

c++ - gtest DEATH_TEST 提示 fork() 和线程,但只有找到的线程已加入

我正在使用gtest进行单元测试,特别是在调试版本中对某些断言使用了一些DEATH_TESTS。为了SetUp()测试,我必须创建一个对象,它会创建另一个线程,关闭并执行一些工作,返回一些数据,然后加入对象的线程。最后,测试夹具的SetUp()返回,允许测试主体运行。我注意到有时DEATH_TEST会提示死亡测试使用fork(),这在线程上下文中尤其不安全。对于此测试,GoogleTest检测到2个线程。这当然是一个有效问题,如果实际上有多个线程在运行。但是,有时不存在此类警告。这似乎是一种竞争条件。所以仔细研究,我发现gtest使用/proc/self/task伪文件系统来发现线程。

linux - Linux 中 "time"命令的更准确等价物,关于 sys- 和用户时间?

我处于以下情况:我想确定一小段(PHP和C++)代码的系统时间和用户时间。显然,我可以在Linux中使用“time”二进制文件,但考虑到这些片段运行得如此之快,“time”的正常(甚至冗长)输出无法满足我的目的。“时间”的精度达到毫秒,而我需要微秒。甚至更好:纳秒。谁能告诉我一款可以为我做这件事的软件?我找到了walltime的东西,但我感兴趣的是sys-和usertime。提前致谢!顺便说一句:我正在运行Ubuntu10.1064位 最佳答案 没有任何方法可以为您提供与time命令报告的sys或usertime等效的更精确的值。t

c - 管道和 fork

该项目的目标是使用管道和fork来执行已经以多进程方式(每个参数一个进程)编写的行计数实用程序。我目前正在努力在扩展以处理多个参数之前让单个进程正常工作。给定两个可执行文件,lc1和lc2,我希望lc2建立到lc1,这样当execlp("lc1",argv[1],NULL)被调用时,输出将被读入while((c=read(pipefd[0],readin,SIZE))>0)根据我的Unix书,我应该使用open、dup2、close方法将stdout重定向到stdin,这是我的代码:intpid,c,i;char*readin=(char*)malloc(sizeof(SIZE));i

c - 为什么 GNU 脚本使用两个 fork 而不是 select 和一个 fork?

我刚刚意识到GNULinux上的“脚本”二进制文件使用两个分支而不是一个。它可以简单地使用select而不是执行第一个fork()。为什么要使用两个fork?仅仅是因为select在编码时不存在并且没有人有动力重新编码它还是有正当理由?man1脚本:http://linux.die.net/man/1/script脚本来源:http://pastebin.com/raw.php?i=br8QXRUT 最佳答案 线索在代码中,我在代码中添加了一些注释。child=fork();sigprocmask(SIG_SETMASK,&unbl

c - 使用无效命令的 fork 导致 valgrind 中的内存泄漏

我有以下代码,它在fork中执行无效命令。以下代码在valgrind中返回内存泄漏。#include#include#include#include#include#includeintexternal_cmd(char**argv){intpid;if((pid=fork())==-1)return-1;if(pid==0){/*child*/execvp(argv[0],argv);exit(0);}elseif(pid用valgrind返回执行上面的代码:$valgrind--leak-check=full--show-leak-kinds=all./test==11573==M

c - fork 失败 : Cannot allocate memory

我有一个在linux机器上运行的程序。它fork一个进程来发送邮件,并经常记录fork失败消息,指出它无法分配内存。当我检查驻留内存的大小时,它大约为12Gb(交换在这台机器上配置为只有1Gb)。有什么方法可以确定这一大块内存不是泄漏,而只是内存增长?此外,是否存在可以调整的系统限制,以便我不会遇到任何fork失败? 最佳答案 要检查内存泄漏,您可能希望在Valgrind下运行该程序:http://valgrind.org要从控制台/shell获取/设置限制,可以使用ulimit命令。在程序内部,系统调用getrlimit()/se