teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

6

追記

2021/05/21 07:14

投稿

skru
skru

スコア1

title CHANGED
File without changes
body CHANGED
@@ -39,7 +39,7 @@
39
39
  環境はUbuntu 16.04 32bitです
40
40
 
41
41
  追記4
42
- 以下のコードを試したのですが、失敗しました
42
+ 以下のコードを試したのですが、失敗しました(./targetはcをコンパイルした実行ファイルです)
43
43
  ```python
44
44
  p = subprocess.Popen(['./target'], stdout=subprocess.PIPE, stdin=subprocess.PIPE)
45
45
  msg = p.stdout.readline()

5

Popenの結果を追記

2021/05/21 07:13

投稿

skru
skru

スコア1

title CHANGED
File without changes
body CHANGED
@@ -36,4 +36,20 @@
36
36
  C側のプログラムは変更できないです。
37
37
 
38
38
  追記3
39
- 環境はUbuntu 16.04 32bitです
39
+ 環境はUbuntu 16.04 32bitです
40
+
41
+ 追記4
42
+ 以下のコードを試したのですが、失敗しました
43
+ ```python
44
+ p = subprocess.Popen(['./target'], stdout=subprocess.PIPE, stdin=subprocess.PIPE)
45
+ msg = p.stdout.readline()
46
+ print(msg)
47
+ p.stdin.write(datas)
48
+ ```
49
+ プロセスの起動は確認しました。
50
+ ```
51
+ $ ps aux | grep target
52
+ user 6406 0.0 0.0 2208 532 pts/19 S+ 16:09 0:00 ./target
53
+ ```
54
+ しかし、起動してもreadline()が実行されず、ずっと待ち状態になります。
55
+ 改善点がありましたら、ご教授ください。

4

環境を追記

2021/05/21 07:11

投稿

skru
skru

スコア1

title CHANGED
File without changes
body CHANGED
@@ -33,4 +33,7 @@
33
33
  Cのプログラムは起動していて、scanf()の部分で入力待ちになっている状態です。
34
34
 
35
35
  追記2
36
- C側のプログラムは変更できないです。
36
+ C側のプログラムは変更できないです。
37
+
38
+ 追記3
39
+ 環境はUbuntu 16.04 32bitです

3

修正

2021/05/21 06:52

投稿

skru
skru

スコア1

title CHANGED
File without changes
body CHANGED
@@ -30,4 +30,7 @@
30
30
 
31
31
 
32
32
  追記
33
- Cのプログラムは起動していて、scanf()の部分で入力待ちになっている状態です。
33
+ Cのプログラムは起動していて、scanf()の部分で入力待ちになっている状態です。
34
+
35
+ 追記2
36
+ C側のプログラムは変更できないです。

2

修正

2021/05/21 05:29

投稿

skru
skru

スコア1

title CHANGED
File without changes
body CHANGED
@@ -26,4 +26,8 @@
26
26
 
27
27
  datas += datas2
28
28
  ```
29
- この変数datasの値を、Cのscanf()に渡したいのですが、どうすればよいでしょうか
29
+ この変数datasの値を、Cのscanf()に渡したいのですが、どうすればよいでしょうか
30
+
31
+
32
+ 追記
33
+ Cのプログラムは起動していて、scanf()の部分で入力待ちになっている状態です。

1

gozi

2021/05/21 05:23

投稿

skru
skru

スコア1

title CHANGED
File without changes
body CHANGED
@@ -7,7 +7,7 @@
7
7
  char input[100] = "";
8
8
  printf("input\n");
9
9
  scanf("%s", input);
10
- printf("%s\n", datas);
10
+ printf("%s\n", input);
11
11
  }
12
12
 
13
13
  int main()