Linux之socket编程(六)----TCP-->模拟shell命令

shell模拟

TCPserver进行通信,不用来对对于命令的解析,所以我们需要设计一个回调函数,用于命令的分析

function< 返回类型(参数类型列表) >

也就是要一个返回string,传参传入string的回调函数

添加成员函数

和他的初始化

命令行解析

我们这里用popen函数来进行操作

popen = pipe + fork + exec。创建管道,fork 子进程,执行 shell 命令,把命令的输出重定向到管道,返回FILE*文件指针,我们可以用fread / fgets读取命令输出。

参数

  1. command:要在 shell 执行的命令字符串,例如"ls -l""ps aux"
  2. type
  • "r" :读取命令的标准输出 stdout,C 程序读命令输出(最常用)
  • "w" :往命令的标准输入 stdin 写数据,相当于给这个命令输入内容

popen 底层会调用 /bin/sh -c command,会经过 shell 解析,支持管道|、重定向>、通配符*

返回值

  • 成功:返回FILE*文件流指针
  • 失败:返回NULL(fork 失败、pipe 失败)
相关推荐
比兔代理1 小时前
住宅代理IP的出口节点调度:ASN、BGP 与 IP 段信誉机制解析
linux·服务器·网络
AAA代码批发商1 小时前
DAYS 38 TCP并发服务器模型详解
linux·网络·笔记·学习
spencer_tseng1 小时前
kylin redis-6.2.14.tar.gz
linux·redis·kylin·edis-6.2.14
Elastic 中国社区官方博客1 小时前
不再有分配延迟:在无状态 Elasticsearch 中将快照与分片迁移解耦
大数据·运维·人工智能·elasticsearch·搜索引擎·全文检索
昌原的儿子LEO2 小时前
Linux 网络编程:select 与 epoll IO 多路复用详解
linux·网络·数据库
hacker_LeeFei2 小时前
Flyway使用手册
运维
啊阿狸不会拉杆2 小时前
《计算机网络-自顶向下方法》3.5 面向连接的运输:TCP 读书笔记
网络·tcp/ip·计算机网络
Jason_zhao_MR2 小时前
Linux与采集MCU通信为什么我们用了双SPI
linux·arm开发·单片机·嵌入式硬件·嵌入式
草莓熊Lotso2 小时前
【Redis 初阶】特殊数据类型、渐进式遍历与数据库操作生产指南
linux·网络·数据库·redis·tcp/ip·缓存·bootstrap