共有ライブラリ client.so を作成しました。実行すると、ユーザーから文字列を読み取り、関数を呼び出す main() 関数が実行されますch=foo(buffer);
。
Main.cpp は次のとおりです。
#include<stdio.h>
#include "foo.h"
int main()
{
char buffer[1024];
char *ch;
printf("Client : \n");
printf("Enter sentence to send to the server (press enter)\n");
fgets(buffer, 1024, stdin);
ch=foo(buffer);
return 0;
}
exec 関数を使用して、c プログラムを実行できます。しかし、phpスクリプトでこれを行うと、ユーザーから文字列を読み取るオプションがありません。
ユーザーがブラウザ自体に文字列を入力できるようにしたいので、その文字列をメイン関数に渡します(おそらくargv、argcを使用しますが、これを行う方法がわかりません)。次に、メイン関数は通常どおり foo(buffer) などを呼び出して続行する必要があります。
foo(buffer) は、php スクリプトで受け取りたい char* ch に格納されている配列を返します。
2 つのオプションがあります。1] ユーザーからテキスト ボックス内の文字列を読み取り、それを main() 関数を持つ共有ライブラリ ファイルに渡します。どちらが実行され、php スクリプトで "ch" が返されます 2] 共有ライブラリ ファイルを実行し (ターミナル ./client で行うように)、実行時に文字列を入力し、プログラム全体を実行します。しかし、これが可能かどうかはわかりません。#include #include "foo.h"
int main()
{
char buffer[1024];
char *ch;
printf("Client : \n");
printf("Enter sentence to send to the server (press enter)\n");
fgets(buffer, 1024, stdin);
ch=foo(buffer);
return 0;
}
これをどのように達成できるかについて、誰かが私に提案をしてもらえますか!