我正在使用 exec() 从 php 脚本调用带有 main() 函数的可执行文件。哪个工作正常,但返回所有 printf() 值,而不是只返回数组:
主.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]