質問編集履歴

6

追記

2021/05/21 07:14

投稿

skru
skru

スコア1

test CHANGED
File without changes
test CHANGED
@@ -80,7 +80,7 @@
80
80
 
81
81
  追記4
82
82
 
83
- 以下のコードを試したのですが、失敗しました
83
+ 以下のコードを試したのですが、失敗しました(./targetはcをコンパイルした実行ファイルです)
84
84
 
85
85
  ```python
86
86
 

5

Popenの結果を追記

2021/05/21 07:13

投稿

skru
skru

スコア1

test CHANGED
File without changes
test CHANGED
@@ -75,3 +75,35 @@
75
75
  追記3
76
76
 
77
77
  環境はUbuntu 16.04 32bitです
78
+
79
+
80
+
81
+ 追記4
82
+
83
+ 以下のコードを試したのですが、失敗しました
84
+
85
+ ```python
86
+
87
+ p = subprocess.Popen(['./target'], stdout=subprocess.PIPE, stdin=subprocess.PIPE)
88
+
89
+ msg = p.stdout.readline()
90
+
91
+ print(msg)
92
+
93
+ p.stdin.write(datas)
94
+
95
+ ```
96
+
97
+ プロセスの起動は確認しました。
98
+
99
+ ```
100
+
101
+ $ ps aux | grep target
102
+
103
+ user 6406 0.0 0.0 2208 532 pts/19 S+ 16:09 0:00 ./target
104
+
105
+ ```
106
+
107
+ しかし、起動してもreadline()が実行されず、ずっと待ち状態になります。
108
+
109
+ 改善点がありましたら、ご教授ください。

4

環境を追記

2021/05/21 07:11

投稿

skru
skru

スコア1

test CHANGED
File without changes
test CHANGED
@@ -69,3 +69,9 @@
69
69
  追記2
70
70
 
71
71
  C側のプログラムは変更できないです。
72
+
73
+
74
+
75
+ 追記3
76
+
77
+ 環境はUbuntu 16.04 32bitです

3

修正

2021/05/21 06:52

投稿

skru
skru

スコア1

test CHANGED
File without changes
test CHANGED
@@ -63,3 +63,9 @@
63
63
  追記
64
64
 
65
65
  Cのプログラムは起動していて、scanf()の部分で入力待ちになっている状態です。
66
+
67
+
68
+
69
+ 追記2
70
+
71
+ C側のプログラムは変更できないです。

2

修正

2021/05/21 05:29

投稿

skru
skru

スコア1

test CHANGED
File without changes
test CHANGED
@@ -55,3 +55,11 @@
55
55
  ```
56
56
 
57
57
  この変数datasの値を、Cのscanf()に渡したいのですが、どうすればよいでしょうか
58
+
59
+
60
+
61
+
62
+
63
+ 追記
64
+
65
+ Cのプログラムは起動していて、scanf()の部分で入力待ちになっている状態です。

1

gozi

2021/05/21 05:23

投稿

skru
skru

スコア1

test CHANGED
File without changes
test CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
  scanf("%s", input);
18
18
 
19
- printf("%s\n", datas);
19
+ printf("%s\n", input);
20
20
 
21
21
  }
22
22