今ソースC言語のソースコードを読んでいるのですが理解できない所があり、どう調べていいのかもわからないので解説頂けると助かります。
test.c
1#define MAXSIZE 8192 2struct bpf_hdr *bp; 3char buff[MAXSIZE]; 4 5 6if (bpf_len <= 0) { 7 /* 複数のパケットを一括取り出し */ 8 if ((bpf_len = read(s, buff, bufsize)) < 0) { 9 perror("read"); 10 exit(EXIT_FAILURE); 11 } 12 bp = (struct bpf_hdr *) buff; ←ここ 13 } else { 14 /* BPFの次のパケットへポインタを移動 */ 15 bp = (struct bpf_hdr *) ((void *) bp ←ここ 16 + BPF_WORDALIGN(bp->bh_hdrlen + bp->bh_caplen)); 17 }
長いので端折ってるんですが
「←ここ」とつけた所、何かを代入しているのはわかります。
ただ(struct bpf_hdr *) buff という形を見たことなくて何をしているのかわからないんです。
また(struct bpf_hdr *) ((void *) bp の形もわかりません…
構造体で何らかの処理をしてるんでしょうけどどういう意味なんでしょうか?
質問下手でごめんなさい…
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/22 16:55
2021/05/22 17:00
2021/05/22 17:02