繁体   English   中英

从C程序发送Linux命令

[英]Send Linux command from C program

我正在编写一个在Linux shell中运行的C程序。 现在我遇到了这样的命令问题。

#include <stdio.h>
void main()
{
char* command="history>>history";
system(command);
}

我希望它将命令“ history”的结果写入文档,但是失败,并显示空白。

如果将其更改为“ date >> history”,则当前系统时间将写入文档中。

“历史>>历史”有什么问题吗? 如果我想得到那份工作该怎么办? 谢谢!

问题在于history不是真正的命令,而是内置的shell。 因此,您不能从C程序[1]调用它。

根据用户使用的外壳,您可以改为从~/.bash_history~/.zsh_history等获取历史记录。 但是请注意,zsh仅在会话结束时写入此文件。

[1]好吧,从理论上讲,您可以尝试system("bash -c history") ,但是由于内置函数未在当前会话的上下文中运行,因此您将无法获得实际的历史记录。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM