社区
Linux/Unix社区
帖子详情
关于如何保存shell命令的返回值
HengStar
2011-01-02 09:48:21
我要写一个SMTP转发服务器,现在需要从客户端传来的邮箱域名中解析出真正的SMTP服务器地址,所以用到了nslookup命令,可以在程序里面通过system函数调用nslookup命令,查询到需要的信息,但是我不知道如何在程序中保存下这些返回的查询信息供解析,望赐教
...全文
978
5
打赏
收藏
关于如何保存shell命令的返回值
我要写一个SMTP转发服务器,现在需要从客户端传来的邮箱域名中解析出真正的SMTP服务器地址,所以用到了nslookup命令,可以在程序里面通过system函数调用nslookup命令,查询到需要的信息,但是我不知道如何在程序中保存下这些返回的查询信息供解析,望赐教
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
HengStar
2011-01-02
打赏
举报
回复
[Quote=引用 4 楼 hudiao 的回复:]
linux下面还有一种简单方法就是:
system("nslookup >1.dat");
用重定位的方法,将nslookup执行的结果写到文件中,
然后从文中读取信息就可以了
[/Quote]
谢谢,我去试试先
hudiao
2011-01-02
打赏
举报
回复
linux下面还有一种简单方法就是:
system("nslookup >1.dat");
用重定位的方法,将nslookup执行的结果写到文件中,
然后从文中读取信息就可以了
hudiao
2011-01-02
打赏
举报
回复
原理是一样的
HengStar
2011-01-02
打赏
举报
回复
不好意思,楼上的兄弟,谢谢你的答案,不过我想要的是linux下面的^^
hudiao
2011-01-02
打赏
举报
回复
用system函数应该不能解决这个问题吧,我觉得要实现这种功能不应该用System函数,可以用管道来完成父子进程的通信。以前我写过一个用ipconfig命令来获取计算机硬件地址的程序,楼主看完程序就会明白该如何做了。以下是程序源代码:
//用ipconfig命令获取主机MAC地址
#include<windows.h>
#include<string>
using namespace std;
#define BUFSIZE 5120
void main()
{
//基本变量的定义
STARTUPINFO sif;
PROCESS_INFORMATION pif;
SECURITY_ATTRIBUTES sattr;
HANDLE hReadPipe,hWritePipe;
BOOL bRetCode;
//初始化sattr
sattr.nLength = sizeof(SECURITY_ATTRIBUTES);
sattr.lpSecurityDescriptor = NULL;
sattr.bInheritHandle = TRUE;
//初始化sif
memset(&sif,0,sizeof(STARTUPINFO));
sif.cb = sizeof(STARTUPINFO);
sif.dwFlags = STARTF_USESTDHANDLES;
CreatePipe(&hReadPipe,&hWritePipe,&sattr,BUFSIZE);
sif.hStdOutput = hWritePipe;
sif.hStdInput = hReadPipe;
//初始化pif
memset(&pif,0,sizeof(PROCESS_INFORMATION));
//创建ipconfig进程
bRetCode = CreateProcess(NULL,
"ipconfig /all",
NULL,
NULL,
TRUE,
NORMAL_PRIORITY_CLASS,
NULL,
NULL,
&sif,
&pif);
if (!bRetCode)
{
printf("%s\n","Failed to get physical address!");
return;
}
//等待子进程退出
WaitForSingleObject(pif.hProcess,INFINITE);
DWORD lenghOfRead = 0;
char temp[BUFSIZE];
string s,r;
//查找并打印MAC地址
bRetCode = ReadFile(hReadPipe,temp,BUFSIZE,&lenghOfRead,NULL);
if (lenghOfRead!=0 && bRetCode!=0)
{
temp[lenghOfRead] = '\0';
s = temp;
//printf("%s\n",temp);
char *p = "Physical Address. . . . . . . . . : ";
int len = strlen(p);
int pos = 0,count = 1;
while((pos = s.find(p,pos))!=-1)
{
pos += len;
r = s.substr(pos,17);
printf("Physical Address%d:%s\n",count++,r.c_str());
}
}
else
printf("There is no data readed!\n");
CloseHandle(pif.hProcess);
}
解决python 执行
shell
命令
无法获取
返回
值
的问题
python获取执行
shell
命令
后
返回
值
得几种方式: # 1.os模块 ret = os.popen(supervisorctl status) ret_data = ret.read() # 2.subprocess模块 ret = subprocess.Popen('supervisorctl status',
shell
=True,stdout=...
Shell
中关于处理方法
返回
值
问题详解
最近工作接触到了一些Linux上面的文本处理,数据量还是蛮大的,不可避免的学期了
shell
,awk等...下面这篇文章主要给大家介绍了关于
Shell
中关于处理方法
返回
值
问题的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。
shell
命令
返回
值
判断
1.判断
命令
是否存在 优雅方法1 首先,检查
命令
是否有效的惯用方法直接在if语句中。 if command; then echo notify user OK >&2 else echo notify user FAIL >&2 return -1 fi (良好做法:使用>...
【Python 基础篇】Python中运行
shell
命令
返回
值
问题
函数执行
命令
后的
返回
值
即
命令
执行后的退出状态码是经过编码的,该函数的
返回
值
与 linux
命令
返回
值
两者的转换关系为:该函数的
返回
值
(十进制)转化成16二进制数,截取其高八位(如果低位数是0的情况下,有关操作...
如何获取
shell
函数的
返回
值
及
shell
命令
的
返回
值
?
1、获取
shell
函数调用的
返回
值
: #!/bin/sh info() { cat jlb.sh } res=`info` echo "state: "$? echo "res: "${res} 说明:res=`info`这一行为调用函数info,里面的符合`不是单引号,而是Esc按键下面的那个...
Linux/Unix社区
23,125
社区成员
74,509
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章