需要在C代码中运行'read'命令

时间:2015-02-08 22:26:49

标签: c linux bash

我需要在我的c代码中运行以下bash命令:

read -rsp $'Press spacebar to continue...\n' -d $' '

基本上我需要在某一点暂停并让用户点击空格键继续。我不能使用getchar()或标准库中的任何东西......

我试图使用execl命令,但似乎无法正确格式化。

或许还有另一种方法可以做到这一点......

2 个答案:

答案 0 :(得分:1)

添加标题#include <stdlib.h>

并使用system("<Command to pass to system>"); 对于windows和linux系统,你可以使用函数和整个命令行以及管道,重定向等也可以使用。

暂停系统使用pause命令作为system() for windows

的参数

将命令放在shell脚本中,并使用system函数调用shell脚本。

答案 1 :(得分:0)

在Linux上,system()函数将其参数传递给/bin/sh以执行。 /bin/sh可能与/bin/bash相同或不同。您需要明确调用bash以确保支持read的所有选项。

要从shell提示符执行此操作,您可以键入bash -c ...,其中...是包含要执行的命令的单个字符串:

bash -c "read -rsp $'Press spacebar to continue...\n' -d $' '"

现在您需要将整个命令行作为字符串传递给system()函数。为此,您需要将其用双引号括起来转义其中的任何双引号或反斜杠:

system("bash -c \"read -rsp $'Press spacebar to continue...\\n' -d $' '\"");