exec() を使用して、php スクリプトから main() 関数で実行可能ファイルを呼び出しています。これは正常に機能しますが、配列を返すだけでなく、すべての printf() 値を返します。
main.cpp:
#include<stdio.h>
#include<string.h>
#include "foo.h"
int main(int argc, char *argv[] )
{
char buffer[1024];
char *ch;
static int ar[2];
strcpy(buffer,argv[1]);
printf("Client : \n");
if ( argc != 2 ) /* argc should be 2 for correct execution */
{
printf( "\n%s filename\n", argv[0] );
}
else
{
printf("\nstring is :%s \n",buffer);
ch=foo(buffer);
ar[0]=((int*)ch)[0];
ar[1]=((int*)ch)[1];
printf("Counts is :%d %d \n",ar[0],ar[1]);
}
return (int)ar;
}
私のtest.php
<?php
$s="critic worst";
escapeshellarg($s);
$a=array(shell_exec('/home/technoworld/Videos/LinSocket/client "nice bad"'));
print_r($a[0]);
//echo exec('whoami');
?>
出力を示します:
Client : string is :nice bad Positive count: 2 Negative count: 2 array item2 2 Count is :2 2
私も同じ問題を与える exec() で試しました。main.cpp から ar[0] と ar[1] を取得する方法を提案できる人はいますか?
Client : string is :nice bad Positive count: 2 Negative count: 2 array item2 2
これは、foo.cpp ファイルに存在するすべての printf() からのものです。
exec() を使用すると、Count is :2 2
正確な ar[0] と ar[1] を取得する方法