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 失败)
相关推荐
Android系统攻城狮4 小时前
Linux Gstreamer深度解析之gst_audio_ring_buffer_delay调用流程与实战(七十二)
linux·运维·服务器·gstreamer音视频·音视频进阶
快乐的韭菜根根5 小时前
ubuntu 安装slurm并配置
linux·运维·ubuntu
U-Mail邮件系统5 小时前
自建邮箱服务器有哪些软件?三款主流邮件服务器软件推荐
运维·服务器
花间相见6 小时前
【计算基础|网络14】网络层:IP、ICMP 与 ping
网络·网络协议·tcp/ip
OnlineProxy6 小时前
为 LangChain 和 CrewAI 构建自定义工具:将代理 IP 轮换封装至智能体函数中
网络协议·tcp/ip·langchain
倒头就睡的小比特6 小时前
Linux基础指令3
linux·服务器
天远数科7 小时前
零信任架构实战:基于天远贷前风险报告构建自动化消金信贷风控与多头共债排查网关
运维·人工智能·架构·自动化
梦帮科技7 小时前
Kali Linux Scapy 畸形报文构造学——深度解剖非法 TCP Flags 与反常序列号
linux·爬虫·神经网络·算法·数学建模·系统架构·模拟退火算法
半杯咖啡半行码8 小时前
Linux 驱动开发入门:内核模块编程基础
linux·服务器·网络
别动我齐刘海8 小时前
Linux 系统调试学习2
linux·运维·c++·人工智能·学习·机器学习·机器人