中打开的任何网站的 ip 我想用 C 语言创建一个程序,允许我在终端中运行命令。.
我用 shell 脚本编写了一个程序,它可以为我提供在浏览器中打开的任何网站的 ip。. 通过在终端 :
sudo tcpdump -n dst port 80 -i eth
中输入此命令来执行此 shell 脚本 我的教授告诉我用 C 语言创建一个程序,该程序将打开终端并输入此命令,然后我的 shell 脚本就可以工作了。.
请告诉我如何创建这样的程序。.
您好,我将为您编写一个示例代码,向您解释,希望对您有所帮助。. 该函数的原型类似于 :
int 系统 (const char *cmd );
#包括 #包括 #包括 #定义 MAX _CMN _LEN 100 int main (int argc, char *argv[] ){ 字符 cmd[MAX _CMN _LEN] = "", **p; 如果 (argc < 2 )/ *没有指定命令 */ { fprintf (stderr,“用法 :./program _名称终端 _命令...” ); 退出(退出_失败); } 别的 { strcat (cmd,argv[1] ); 对于 (p = &argv[2]; *页; p++ ){ strcat (cmd, " " ); strcat (cmd,*p ); } 系统 (cmd ); } 返回0; }
1 )。. 打开终端并编译程序
2 )。. 运行它 (例如在 Ubuntu )./program _名称 comman _名称 -任何东西 -任何东西
示例 :./a.out 语言环境 -a
此示例打印我的编译器 gcc 支持的所有语言环境。.
更多信息 :
p 是指向 char (的指针的指针,就像 argv 是 )p = &argv[2],指向 -任何字符串 我将所有 -任何内容添加到我的 cmd 字符串中 当 *p 指向 NULL 时,我退出循环 看看这个 :-> 我将使用此符号表示指向 (不要将其与右箭头选择运算符 )混淆。.
argv[0] -> 程序 _名称
argv[1] -> command _name (在此示例中,命令名称将是语言环境,但请输入您要检查的命令 )
argv[2] -> -任何 (在这个例子中 -a,这是所有语言环境 )
在本例中,argv[3] -> NULL (, 这将退出循环 )
好的,就是这样,我想。.
您好,我将为您编写一个示例代码,向您解释,希望对您有所帮助。. 该函数的原型类似于 :
int 系统 (const char *cmd );
#包括 #包括 #包括 #定义 MAX _CMN _LEN 100 int main (int argc, char *argv[] ){ 字符 cmd[MAX _CMN _LEN] = "", **p; 如果 (argc < 2 )/ *没有指定命令 */ { fprintf (stderr,“用法 :./program _名称终端 _命令...” ); 退出(退出_失败); } 别的 { strcat (cmd,argv[1] ); 对于 (p = &argv[2]; *页; p++ ){ strcat (cmd, " " ); strcat (cmd,*p ); } 系统 (cmd ); } 返回0; }
1 )。. 打开终端并编译程序
2 )。. 运行它 (例如在 Ubuntu )./program _名称 comman _名称 -任何东西 -任何东西
示例 :./a.out 语言环境 -a
此示例打印我的编译器 gcc 支持的所有语言环境。.
更多信息 :
p 是指向 char (的指针的指针,就像 argv 是 )p = &argv[2],指向 -任何字符串 我将所有 -任何内容添加到我的 cmd 字符串中 当 *p 指向 NULL 时,我退出循环 看看这个 :-> 我将使用此符号表示指向 (不要将其与右箭头选择运算符 )混淆。.
argv[0] -> 程序 _名称
argv[1] -> command _name (在此示例中,命令名称将是语言环境,但请输入您要检查的命令 )
argv[2] -> -任何 (在这个例子中 -a,这是所有语言环境 )
在本例中,argv[3] -> NULL (, 这将退出循环 )
好的,就是这样,我想。.