我试图执行“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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top