「whois検索ドメイン名.tld」を実行しようとしています。現在 system("whois search domainname.tld"); を使用しています。ただし、ユーザーに出力するには、出力を NSString 変数に入れる必要があります。
これどうやってするの?
「whois検索ドメイン名.tld」を実行しようとしています。現在 system("whois search 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