我是Linux和编程的新手.我使用system(“ Prog”)从C程序打开了一个应用程序;

Prog-> #after opening the program

该“程序”接受来自用户的某些命令并显示输出.

Prog-> write # Accepts the command from user

1 2 3 4 5 # Displays the output

Prog-> # Waiting for next command

我想使命令从C程序发送,而不是从用户那里获取.我不能使用system(“”);将命令发送到打开的程序“ Prog”(就像从C程序向CLI传递命令一样).系统();仅适用于CLI,不适用于打开的程序.

有什么方法可以将命令从C程序发送到打开的应用程序?

我还应该将显示的输出“ 1 2 3 4 5”存储在文件中.请帮助.

解决方法:

从表面上看,您可能会发现适当的popen()功能以及

pclose()功能.

FILE *fp = popen("Prog", "w");

这表明您的程序将写入fp以将数据发送到Prog的标准输入. Prog的标准输出将与程序的标准输出移至同一位置.完成后,使用pclose()关闭流:

pclose(fp);

如果您需要更多控制输出的位置,则需要使用:

如果这还不够—如果Prog对没有用于输入和/或输出的端子的反应不佳,那么您将需要研究伪tty或pty设备.这些使用起来有些棘手.它们是一个单独问题的主题(SO上可能已有几个相关的问题及其答案,可以涵盖它们的用法).

标签:bash,command-line-interface,linux

来源: https://codeday.me/bug/20191121/2053054.html

linux c程序 bash,linux-如何使bash程序接受来自另一个C程序的命令相关推荐

  1. linux超级基础系列——什么是shell? bash和shell有什么关系

    什么是Shell?        shell是你(用户)和Linux(或者更准确的说,是你和Linux内核)之间的接口程序.你在提示符下输入的每个命令都由shell先解释然后传给Linux内核.    ...

  2. linux 终端 画圆,Linux Bash Shell快速入门

    BASH的基本语法 ·最简单的例子-- Hello World! ·关于输入.输出和错误输出 ·BASH中对变量的规定(与C语言的异同) ·BASH中的基本流程控制语法 ·函数的使用 2.1最简单的例 ...

  3. linux 中输入bash,Linux上Bash Shell编程

    Linux下Bash Shell编程 Bash Shell Programming in Linux Linux下Bash Shell编程 Bash what? 进阶的内容是什么? Okay, I g ...

  4. linux内核与bash脚本接囗,Bash脚本编程之脚本基础和bash配置文件

    脚本基础 不严谨地说,编程语言根据代码运行的方式,可以分为两种方式: 编译运行:需要先将人类可识别的代码文件编译成机器可运行的二进制程序文件后,方可运行.例如C语言和Java语言. 解释运行:需要一个 ...

  5. 修复linux bash破壳漏洞,Linux系统下如何检测并修复bash中的破壳漏洞​​

    问题:我想要知道我的Linux服务器是否存在bash破壳漏洞,以及如何来保护我的Linux服务器不受破壳漏洞侵袭. 2014年9月24日,一位名叫斯特凡·沙泽拉的安全研究者发现了一个名为"破 ...

  6. linux编写脚本读取txt文件,用bash脚本或者批处理 bat脚本 读取一个目录下.txt文件第一行内容存放到新文件a.txt...

    起因:我把cmd 控制台说成了dos! 发展:人类生气了,跟我扯了一堆 dos 还有什么玩意儿,在我第二次还说那个是dos界面以后:( 后续:人类要我写 批处理bat 还有linux bash 脚本去 ...

  7. Note For Linux By Jes(5)-认识与学习 BASH

    正确的关机方法: 数据同步写入磁盘:sync 惯用的关机命令:shutdown 重新启动,关机:reboot, halt, poweroff 切换运行等级:init run level 0:关机 ru ...

  8. linux系统漏洞测试过程,Linux下bash破壳漏洞检测方法

    如果Linux服务器存在bash破壳漏洞,将可能导致远程攻击者操作系统来执行任意命令,威胁等级较高,那么我们要怎么知道Linux系统是否存在该漏洞,又该如何修复呢?下面随学习啦小编一起来了解下吧. 问 ...

  9. bash 判断 os 版本_Kali Linux 2020.3开始用ZSH取代Bash旅程

    在此版本中,Kali Linux团队引入了以下概述的各种新功能. Kali Linux切换到ZSH作为默认Shell 在此版本中,Kali Linux团队开始了从默认Bash shell切换到ZSH的 ...

最新文章

  1. 【OpenCV 4开发详解】Scharr算子
  2. WPF 把图片分割成两份自动翻页 WpfFlipPageControl:CtrlBook 书控件
  3. VIM — vim-go
  4. 请求的转发:RequestDispatcher对象处理请求的两个方法--forward和include
  5. Kotlin协程重新认知 CoroutineContext
  6. SpringMVC(十一) RequestMapping获取Cookie值
  7. 计算机教室安全预案 博客,校园安全应急预案
  8. php无法连接mysql_php无法连接数据库
  9. section怎么制造图框_cad中如何制作带属性块的图框 - CAD自学网
  10. 41 款实用工具,数据获取、清洗、建模、可视化都有了
  11. 互联网十几年 我们错失了哪些创业机会
  12. 汉字与区位码互转(转)
  13. 使用 python 完成 IP 存活检测
  14. 微信小程序云开发如何修改后台手动添加的数据
  15. 中介分析(二): 多重中介分析
  16. for while循环练习
  17. Java 发送邮件的几种方式
  18. 解决json数据 key为数字,自动排序问题
  19. cocos2dx中的颜色混合
  20. 中科红旗卖身内幕:收购方放言不惜代价拿下

热门文章

  1. php 服务器 mac地址吗,php获取服务器端mac和客户端mac的地址
  2. beeline安装_Hive 系列 之 简介与安装
  3. java 里面怎么截取倒数第几个字_Java反射是什么
  4. Qt使用MSVC编译器关闭“warning: C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失”警告的方法
  5. java中的greeting_JAVA基础知识——字符串
  6. 好程序员web前端分享逻辑运算
  7. 《数据结构与抽象:Java语言描述(原书第4版)》一1.1 什么是包
  8. node.js创建server
  9. 自从用了Less 编写css,你比以前更快了~
  10. 【精华】Asp优化之缓存技术