

こんにちは。
プログラムを実行すると「セグメンテーションエラー」と表示されほとほと困っています。力を貸して頂けないでしょうか。
以下がそのプログラムです。
#include<string.h>
#include<unistd.h>
#include<errno.h>
#include<signal.h>
#include<sys/types.h>
main(){
FILE *fp,*fp2;
int a;
pid_t pid;
pid = fork();
if(pid == 0){
fp = popen("tcpdump 'tcp[13] & 255 == 2' > file.txt","r");
system("sleep 1");
kill(pid,SIGTERM);
}
else{
fp2 = popen("wc -l file.txt","r");
fscanf(fp2,"%3d",a);
printf("%d",a);
}
}
プログラムの内容は、子プロセスとして動かしたtcpdumpにより出力されたfile.txtの行数を表示するものです。
tcpdumpを子プロセス化したのは、killコマンドで終了しないと止まらないからです。
以上で何か気づかれた事等ありましたら、是非ご教授いただきたいのですが可能でしょうか。環境はCentosです。どうぞよろしくお願いします。
No.2ベストアンサー
- 回答日時:
1. デバッガ内で実行してみましたか?
2. kill()を呼ぶとき、pidの値は何ですか? それは意図通りですか?
3. tcpdumpをpopen()で起動しているのはなぜですか? せっかく作成されたパイプが全く使われていませんが。
4. file.txtは出力する必要があるのですか? もし出力結果をファイルとして残しておく必要がないのであれば、tcpdumpの結果を直接パイプから読み出して行数を数えれば済むように思います。
5. sleep()関数を使わず、わざわざsystem()でsleepコマンドを呼んでいるのはなぜですか?
6. tcpdumpが終了してからwcが起動されることは保証されていますか?
7. main()の型を宣言しないのはなぜですか?
ちょっと意地悪でしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- その他(プログラミング・Web制作) mariadbでのエラー 1 2022/11/15 12:31
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# プログラミングのペーパーテスト 実行結果がどのように表示されるか答えよ #include <stdi 1 2022/07/09 14:27
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- C言語・C++・C# 並列プログラミングのπ計算について 1 2022/07/16 22:30
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数ファイルの同時読み込みの...
-
C言語でファイル読み書きを早く...
-
fopenでファイル名に、変数を使...
-
c言語でのfscanfについて
-
ファイルへの書込み処理が異常...
-
ファイル出力で改行を入れたい!
-
fscanfでループしてしまう。
-
C言語にてXMLファイルから任意...
-
テキストファイル内に対して, ...
-
datファイルの読み込み
-
ファイルに行番号を追加
-
大量の入力ファイルを扱うとき...
-
辞書順にソートしたいのですが...
-
InternetReadFileを使ったファ...
-
C言語 連番データの読み込み
-
C言語におけるファイル読み込み...
-
数値のみ抽出(C言語)
-
簡易grep関数ができません。助...
-
VisualStudioでのファイルの入...
-
fgets( ) の返り値は何?
おすすめ情報