=program.cという名前のプログラムの一部
int memoryPercent()
{
int memoryPercent=0;
FILE *pipe1 = NULL;
pipe1=popen("/home/jatin/scripts/memoryPercent.sh","r");
if(!pipe1)
{
snmp_log(LOG_ERR,"popen failed in temp(),errno:%d\n",errno);
return -1;
}
if( fscanf(pipe1,"%d",&memoryPercent) != 1)
{
snmp_log(LOG_ERR,"fscanf failed in temp fun(),errno:\n");
return -2;
}
pclose(pipe1);
return memoryPercent;
}
上記は、この場所での私の呼び出しコード/home/jatin/scripts/memoryPercent.shであり、スクリプトが与えられ、INTEGER値を返しています。
UBUNTU 12.04では、このコードをコンパイルして実行すると、完全に実行されています。
しかし、私のVM-WAREでは
/ var / snmp3の場所に必要なすべての依存関係をコピーし、CHROOTを使用してこのバイナリを実行します。構文は次のとおりです。
/usr/sbin/chroot /var/snmp3/ /usr/local/bin/program
値「-1」のみを表示しています!! 誰かが私が欠けているものを教えてもらえますか?
スクリプトは、775モードと同じ場所にあります/var/snmp3/home/jatin/scripts/memoryPercent.sh
。/home/jatin/scripts/memoryPercent.sh