问题标签 [unistd.h]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - 函数execve的实现(unistd.h)
如何查看函数 execve 的实现(在 x86_64 Linux 下),它在库 unistd 中?我想要这个,因为我想知道如何使用汇编程序调用外部程序,而不调用 execve。我知道有一个名为 execve 的系统调用,但我不知道如何使用它。
如何将 char * 类型和 char * [] 类型的变量放入寄存器?
c++ - 作业 dup2 功能
我对使用以下代码的家庭作业有疑问:
它说,
“要了解为什么需要进行 if 测试,假设 fd 为 1,并画出每次调用 dup2 时三个描述符条目和相应的文件表条目发生的情况。然后假设 fd 为 3,并画出相同的图。”
我想知道是否可以得到一些帮助,因为我很迷茫。
谁能给我一个关于这个材料的快速教程,因为我很难在我的书和网上找到它。谢谢。
c++ - 关于 unistd.h (C++) 中的 read()
总之,我正在设计一个Key-Value服务器,当我写客户端的时候,我发现了一个很奇怪的事情,看简化代码:
当我运行程序时,它首先要求输入,所以我输入了一些东西,但什么也没发生!(当我使用其他客户端时,服务器运行良好,并且很好地回显了一些东西)
然后我只更改了一行代码:
然后它运行良好!为什么?为什么“\n”可以改变输出?我想可能是 read() ,但我无法解释
c - 不能运行两次execl
如果我尝试执行这些命令:
只有第一个被执行,为什么?
c++ - 竞争性编程中的快速输入/输出
我在竞争性编程竞赛的解决方案中多次遇到这个特定的代码片段。我了解此代码的基本用法来超越时间限制,但我想更深入地了解它。我知道 unistd.h 可以访问系统调用包装函数,例如 fork、pipe 和 I/O 原语(读、写……)。
如果有人可以解释或指导我找到可以帮助我进一步理解它的资源,那也很棒。
还有一件事:在生产级代码中使用类似技术是一种好习惯吗?
c - getdomainname() 在 MPI 下返回错误地址(测试 PETSc 库)
我正在尝试在我的笔记本电脑(MacBook Pro 10.5.8,MPICH2-1.1)上安装 PETSc-3.2,并且在运行测试时遇到了一些困难:它从getdomainname()
返回错误地址的系统调用中出错。
为了进行调查,我编写了以下测试代码来检查getdomainname()
使用和不使用 MPI 的功能:
单处理器:
平行线:
单处理器代码正常工作,并行代码获取处理器的正确名称,但在调用时返回错误地址,getdomainname()
即使使用mpirun -np 1
.
有没有人遇到过这样的问题?是否需要进行某种配置,mpirun
以便为 MPI 生成的每个进程设置域名?提前致谢!
更新:
对于那些使用 PETSc 遇到此问题的人,请使用选项--with-debugging=0
. 似乎在一些 PETSc 调试消息等中,他们使用调用getdomainname()
而不是MPI_Get_processor_name()
. 在不调试的情况下编译会禁用库中的这个分支。
c - 在带有文件描述符的 execl 中使用 grep
我正在尝试执行以下操作:
其中 fd 是文件描述符。所以基本上这应该在 fd 指向的文件中 grep 为“打印”。尽管我没有收到编译错误/警告,但它似乎不起作用。当我给出一个文件名"Something.txt"
而不是fd
有人可以告诉我为什么这不起作用吗?(我知道 execl 只需要,const char arg*
但正如我所说,没有编译错误/警告)。
c - 如何使用正确的参数在 C 中调用 execl()?
如果我输入 shell,我有 vlc(再现视频的程序):
/home/vlc "/home/我的电影/我想看的电影.mkv"
它打开了一个复制电影。
但是,当我运行以下程序时:
vlc 打开但不复制任何内容。我该如何解决这个问题?
我尝试过的事情:
我猜的
相当于在 shell 中输入:
这不起作用,所以我尝试了
并且 vlc 打开但也不会复制。
我没有在最后写 NULL,而是尝试了 0, (char*) 0, 1 .... 没有帮助。帮助!!!!
c - C中的错误代码
我在下面的代码中有错误
我在 GCC(Unix) 中编码,并得到以下错误:
test.c:27:1: 错误:预期标识符 '(' 在 '}' 标记之前
有人可以建议我任何帮助吗?提前致谢 :)