0

(scanf による) 入力を必要とする ac プログラムを作成しました。次に、.so ファイルを作成し、それを Python スクリプトで呼び出して、スクリプトを実行するとターミナルで入力を求められるようにしました。しかし、python プログラムを実行すると、端末がハングします。

注意してください:
1. 私の c コード

#include <stdio.h>
#include <string.h>
int open(void)
{
    char input[20];
    scanf("input = %s\n",&input);
    printf("\n%s\n","input");
}

2. コードのコンパイルに使用したコマンド

gcc -c usb_comm.c

3..soファイルの作成

gcc -shared -o libhello.so usb_comm.o

4.python プログラムの関連セクション
.so ファイルのロード

from ctypes import cdll
mydll = cdll.LoadLibrary('/home/vineeshvs/Dropbox/wel/workspace/Atmel/libhello.so')


c プログラムで定義された関数の呼び出し

mydll.scanf("%c",mydll.open())

聞いてくれてありがとう :)

4

1 に答える 1

0

mydll.open()scanf を呼び出します。Python で scanf を呼び出すのはなぜですか?

ただ呼び出すmydll.open()だけです:

mydll.open()

アップデート

#include <stdio.h>

void open(void)
{
    char input[20];
    printf("input = "); // If you want prompt
    scanf("%s", input);
    printf("\n%s\n", input);
}
于 2013-08-02T09:07:21.310 に答える