Articles of pipe理员

我可以在Linux上做一个copy-on-write memcpy吗?

我有一些代码经常复制一大块内存,往往只做了非常小的修改。 我已经实现了一个跟踪变化的系统,但是我认为它可能是很好的,如果可能的话,告诉操作系统做一个“写入时拷贝”的内存,让它只处理这些部分的拷贝哪个变化 然而,当Linux进行写入时拷贝时,例如fork()时,我找不到控制它并自己做的方法。

内存主机和内存参数之间的关系xms和xmx来自Java

我有以下主机与内存的细节: $free -m total used free shared buffers cached Mem: 7872 7579 292 17 483 3983 -/+ buffers/cache: 3112 4759 Swap: 2047 14 2033 我有一个Java应用程序运行params -Xms200m -Xmx200m ,有人可以请解释为什么VCZ是3800076和RSS是241304(这是更多的Java参数) 从ps -aux命令: 66345 6773 0.2 2.9 3800076 241304 ? Sl Apr1 12:06 /apps/myapps/myapp1/java/bin/java -Xms200m -Xmx200m

如何在命名pipe道(mkfifo)上执行非阻塞fopen?

如果我有一个程序创build并试图使用mkfifo打开一个命名pipe道,我怎样才能打开pipe道读取或写入没有阻塞? 具体来说,我正在写一个C程序,可以使用或不使用gui(用Java编写)来运行。 在C程序中,我成功地使用mkfifo创build了命名pipe道,但是当我这样做时 FILE* in = fopen(PIPE_IN, "r"); /* Where PIPE_IN is the filename*/ 在GUI打开pipe道进行写入之前,fopen不会返回。 我希望做的是让pipe道准备被读取一次(如果)GUI决定写入它 – 我将把文件描述符放在一个select()调用中。 有理由期望java GUI可能永远不会被启动,所以我不能依靠它在任何特定点甚至根本上打开pipe道的另一端。 我也会有第二条pipe道,我想我也会遇到同样的问题。 此外,我不能在没有阅读器的输出pipe上设置O_NONBLOCK。 有什么build议么? (这是在Linux系统上运行)

是否有可能有两个由同一父(LINUX,POSIX)创build的subprocess之间的pipe道

我有多个孩子由同一个父母“分叉”,我尝试构build所有这些subprocess之间的pipe连接,如链接列表结构。 孩子1发送数据到孩子2,孩子2发送到孩子3 ….孩子N发送给孩子1.有没有什么合适的方法来做到这一点? 另外,如果我在进程之间创build和通信,我强制父进程等待所有进程完成他们的工作,因为wait()或waitpid()等待第一个完成的进程,但是我需要等待所有进程。 这是另一个问题出现。 谢谢…

IPC的性能:命名pipe道与套接字

每个人似乎都认为命名pipe道比套接字IPC更快。 他们快多less? 我更喜欢使用套接字,因为它们可以进行双向通信,而且非常灵活,但是如果数量相当多的话,它会select速度而不是灵活性。

Windows命令解释器:如何获取第一个pipe道命令的退出码

在下面提供的示例中,我执行nmake,然后将STDOUT / STDERRredirect到tee,然后将它发送到屏幕以及日志文件。 问题是,我试图捕获nmake退出代码,而不是三通。 我需要的是从nmake退出代码,而不是三通。 nmake | tee output.txt

UNIX与Windows内存释放

我的理解是,在unix中,当内存被释放时,内存不会被返回到操作系统,它留在进程中再次用于下一次调用malloc。 在Windows上,我知道内存实际上被返回到操作系统。 这两种做事方式有没有很大的区别,还是做同一件事情的两种不同方式? 如果这两种方法有什么优点/缺点,它们是什么? 编辑:谢谢澄清。 我一直认为这是一个操作系统的东西(因为在类似UNIX的系统中,进程似乎不会减小,而是在Windows中)。

Delphipipe理员权限D7 W7

可能重复: Delphi:需要时提示UAC提升 我用Delphi 7编写的用于Windows 7的应用程序需要pipe理员权限来执行某些function。 我怎样才能从源代码提升到pipe理员? 我用这个代码检查用户权限: function IsUserAdmin : boolean; const CAdminSia : TSidIdentifierAuthority = (value: (0, 0, 0, 0, 0, 5)); var sid : PSid; ctm : function (token: dword; sid: pointer; var isMember: bool) : bool; stdcall; b1 : bool; begin result := false; ctm := GetProcAddress(LoadLibrary('advapi32.dll'), 'CheckTokenMembership'); if (@ctm <> nil) […]

驱动器盘符和冒号后没有斜杠的path – 它指向什么?

我打错了一个path,而不是c:\foo.txt写了c:foo.txt 。 我预料它要么失败,要么parsing为c:\foo.txt ,而是似乎在当前用户的home文件夹中parsing为foo.txt 。 Powershell返回: PS C:\> [System.IO.Path]::GetFullPath("c:\foo.txt") c:\foo.txt PS C:\> [System.IO.Path]::GetFullPath("c:foo.txt") C:\Users\Administrator\foo.txt PS C:\> [System.IO.Path]::GetFullPath("g:foo.txt") G:\foo.txt 从命令行运行explorer.exe并将以上任何一个结果传递给C:\ Users \ Administrator \ Documents以打开。 我还没有find任何文件,我完全困惑,请解释行为。

列出所有用户在非域系统上的最后一次Windows密码更改

对于连接到AD域控制器的系统,我已经find了这个问题的答案。 但是,这个问题适用于无法连接到域控制器的独立系统。 基本上,气隙系统。 简短而又甜蜜:有没有办法列出每个用户最后一次将非密码空间系统(Windows 7或10)的Windows密码更改为batch file或PowerShell脚本? 我知道,净用户{用户名} | find/我“密码上次设置”将一次为他们做。 然而,每台机器运行多次会很繁琐,而且我们有超过60个这种types的系统。 所以我一直在寻找一种方法来做到这一点,如果可能的话。 作为一个警告,我们没有select在PowerShell中为此安装activedirectory模块。 另外,由于大多数系统都是Windows 7,我们无法访问Windows 10中可用的Bash命令行工具。 任何和所有这方面的帮助表示赞赏。