回答編集履歴

5

指摘追加

2020/05/12 16:11

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -35,3 +35,13 @@
35
35
  (追記)コードが更新されましたが、0初期化した後1024と比較しているため一度もループ実行されません。
36
36
 
37
37
  ・`fwrite`の書き込みサイズが受信した`data.send_size`を使用せず`1024`固定になっている。
38
+
39
+ ・条件式が代入文になっています。
40
+
41
+ ```diff
42
+
43
+ -if(errno=ENOMSG)
44
+
45
+ +if(errno==ENOMSG)
46
+
47
+ ```

4

コード更新に合わせて追記

2020/05/12 16:11

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -32,4 +32,6 @@
32
32
 
33
33
  ・`data.send_size`に修正したとしても、初期化されていないままwhileの条件式に使用している。
34
34
 
35
+ (追記)コードが更新されましたが、0初期化した後1024と比較しているため一度もループ実行されません。
36
+
35
37
  ・`fwrite`の書き込みサイズが受信した`data.send_size`を使用せず`1024`固定になっている。

3

文言修正

2020/05/12 16:08

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -30,6 +30,6 @@
30
30
 
31
31
  ほかにぱっと見で気づいた点。
32
32
 
33
- 初期化されていない`send_size`whileの条件式使用している。
33
+ ・`data.send_size`に修正したとしても、初期化されていないままwhileの条件式使用している。
34
34
 
35
35
  ・`fwrite`の書き込みサイズが受信した`data.send_size`を使用せず`1024`固定になっている。

2

受信側問題点追記

2020/05/12 15:09

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -3,3 +3,33 @@
3
3
  `data.mtype`や`data.send_size`の誤りでしょう。
4
4
 
5
5
  あといくつか全角スペースが入っています。
6
+
7
+
8
+
9
+ ---
10
+
11
+
12
+
13
+ > Recieve 0: (ここにバイナリの文字が3文字ランダムで表示されている状態です)
14
+
15
+
16
+
17
+ `fputs(b.mtext,stdout);`
18
+
19
+ で初期化されていない`b.mtext`を出力しているためです。
20
+
21
+
22
+
23
+ ---
24
+
25
+
26
+
27
+ - 受信側
28
+
29
+ etsuhisaさんも指摘されているようにデータを受け取る前に`fwrite`を呼んでしまっています。
30
+
31
+ ほかにぱっと見で気づいた点。
32
+
33
+ ・初期化されていない`send_size`をwhileの条件式で使用している。
34
+
35
+ ・`fwrite`の書き込みサイズが受信した`data.send_size`を使用せず`1024`固定になっている。

1

文言修正

2020/05/12 15:03

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -1,4 +1,4 @@
1
- コンパイラのエラーの通り`mtype`や`send_size`が宣言されていません。
1
+ コンパイラのエラーの通り`send_size`(と`mtype`)が宣言されていません。
2
2
 
3
3
  `data.mtype`や`data.send_size`の誤りでしょう。
4
4