
No.2ベストアンサー
- 回答日時:
こんにちは。
No.1さんお答えのようにそのまま書けばOKですが、
Cプログラムの中から呼ぼうというのは特別わけがあるのでしょうか。
ping はエラーコードとしてリモートホストが正常にパケットに反応すれば0、
向こうが応答パケットを返してこなければ1、
ホストがダウンしているなら2を返します。
詳細は「man ping」で。
こんなプログラムをでっち上げてみました(仮称 pingpong.c)。
引数に任意のホスト名または IP アドレスを取れます。
$ pingpong www.example.org
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define BUF 64
#define CHECKCOUNT 5
int main(int argc, char *argv[])
{
int result;
char command[BUF];
char *hostptr = "192.168.0.0";
if (argc == 2) hostptr = argv[1];
if (strlen(hostptr) >= BUF-25)
{
fprintf(stderr, "Hostname too long.\n");
exit(4);
}
/* ping コマンドは饒舌で、-q をつけても完全には黙りません */
sprintf(command, "ping -q -c %d %s >/dev/null", CHECKCOUNT, hostptr);
result = system(command);
/* シェルスクリプトに戻り値を判断させたいなら以下は不要で
すぐに return result; してください */
switch (result)
{
case 1:
puts("No packets received.");
return result;
case 2:
puts("Host unreachable");
return result;
}
return result;
}
No.1
- 回答日時:
あなたがお書きになっている通りに、
#include <stdlib.h>
int main() {
system("ping -c 3 127.0.0.1");
}
でできます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Visual C++からpingを実行してその結果を得る方法
C言語・C++・C#
-
pingの結果を取得する方法
C言語・C++・C#
-
C言語でpingを実行してその結果をもらうプログラム
C言語・C++・C#
-
-
4
<unistd.h>をVisualStudioでつかえるようにする
C言語・C++・C#
-
5
system関数のエラー検出
C言語・C++・C#
-
6
ネットワーク切断を検出するには?
C言語・C++・C#
-
7
Cからシェルを起動し返り値をハンドリングする方法
C言語・C++・C#
-
8
WiFiのプログラミングについて
C言語・C++・C#
-
9
配列の要素数に変数を入れたいときには
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語 バイナリファイルをfloa...
-
【C言語】構造体内の領域解放(...
-
間接参照のレベルが異なっています
-
テキストデータをそのままバイ...
-
c言語の問題の説明、各所ごとに
-
char型からのバイト数取得
-
strncpyと_tcsncpy_sのヌルの扱...
-
中置記法の問題なのですが…
-
pingの結果を取得する方法
-
CStringをwchar_tに変換したい
-
str系関数を使わずに二つの文字...
-
文字を16進変換
-
main の引数には const 付けた方が
-
'const char *' 型は 'char *' ...
-
switch文で文字を比較すること...
-
配列をnビットシフトする
-
ASCII変換について
-
fgetsについて
-
C言語のfor文です。 繰り返しの...
-
バイナリファイルをコピーする...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字列から空白を取り除きたい...
-
C言語のfor文です。 繰り返しの...
-
CStringをwchar_tに変換したい
-
テキストデータをそのままバイ...
-
ネットワークにつながっている...
-
fgetsなどのときのstdinのバッ...
-
double型の値をchar配列に変換...
-
atoi( ) の反対をやりたい
-
charからLPTSTRへの変換方法
-
'const char *' 型は 'char *' ...
-
間接操作のレベルとは
-
c言語プログラミング実行時エラ...
-
c++ 文字列を入力して、一文字...
-
【C言語】構造体内の領域解放(...
-
間接参照のレベルが異なっています
-
C言語の入力した文字を反転させ...
-
構造体のアライメント調整
-
strncpyと_tcsncpy_sのヌルの扱...
-
TCP/IP通信型大文字・小文字変...
-
char型からのバイト数取得
おすすめ情報