目标C:端子输出成的NSString
-
27-09-2019 - |
题
我试图执行“WHOIS查询domainname.tld”。我目前使用的系统(“WHOIS查询domainname.tld”);但是我需要得到输出入的NSString变量,以输出给用户。
我怎样才能做到这一点?
解决方案
如果您愿意,您也可以使用NSTask来完成相同的目标。现在,我不是通常是一到做人流的功课他们,但这里是你会怎么做这样的事情与NSTask: pastie.org/1087887 。
的想法是,创建一个NSTask
对象运行@"/usr/bin/whois"
用参数whois
(其中@"search domainname.tld"
从运行在磁盘上的位置)。然后,使用一个NSPipe
对象,以读取来自命令的输出,并返回给用户。
注意:强>此功能被阻断(它会等待,直到精加工之前运行whois
饰面),这是不推荐的,特别是对于网络操作。使这个异步是留给读者的练习。
其他提示
使用popen
代替。强>
在system
函数调用不返回任何输出,所以你不能与得到它。
可以使用popen
例如用于netstat -l
的管道输出:
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
FILE * fp;
int status;
const unsigned int sz = 1024;
char buf[sz];
string cmd;
//cmd = "ls *";
cmd = "netstat -l";
fp = popen(cmd.c_str(), "r");
if (fp == NULL) return 0;
while (fgets(buf, sz, fp) != NULL)
printf("%s", buf);
status = pclose(fp);
if (status == -1)
{
cout << "pclose failed" << endl;
}
return 1;
}
见man popen
获得更多信息。
应该很容易的输出纳入Objective-C
因为你可以从C
调用Objective-c
。
不隶属于 StackOverflow