c++;php shell_exec的等效程序 下面的PHP命令的C++等效命令是什么? $command = shell_exec("sqlldr {$connect_string} control={$ctl_file_name} log={$log_file_name}");

c++;php shell_exec的等效程序 下面的PHP命令的C++等效命令是什么? $command = shell_exec("sqlldr {$connect_string} control={$ctl_file_name} log={$log_file_name}");,php,c++,shell-exec,Php,C++,Shell Exec,尝试forkpty,您会得到一个文件描述符,您可以使用该描述符从另一个伪终端读取。因此,根据您的意见,一个可行的解决方案是使用popen(3): #包括 #包括 #包括 int main() { //根据您的输入等设置文件名…只需使用下面的假人 字符串 ctrlFileName=“file1”, logFileName=“file2”, cmd=“sqlldr usr”/pwd@LT45control=“+ctrlFileName+”log=“+logFileName; STD::如果你想用C+

尝试
forkpty
,您会得到一个文件描述符,您可以使用该描述符从另一个伪终端读取。

因此,根据您的意见,一个可行的解决方案是使用popen(3):

#包括
#包括
#包括
int main()
{
//根据您的输入等设置文件名…只需使用下面的假人
字符串
ctrlFileName=“file1”,
logFileName=“file2”,
cmd=“sqlldr usr”/pwd@LT45control=“+ctrlFileName+”log=“+logFileName;

STD::如果你想用C++ C++执行shell命令,你可以试试PHP,如果你想要C++,请使用C++代码。但这不会给你一个字符串。我确信99%的确有一个C++库/实现/ ADO提供者这样做得更好。我认为这个步骤显示了如何使用POPON,这可能是你的答案。谢谢ShafikYaghmour。得到了我到底在寻找什么代码。但是现在我得到这个错误:LRM-0116:在'log '后面跟着''= '的语法错误。SQL*Loader-100:命令行上出现语法错误。我使用的命令是:“sqlldr usr”/pwd@LT45control=ctrl\u file log=log\u file“@sajal这是一个Oracle错误,请查看Oracle网站以了解有关错误消息代码的详细信息,例如,这涵盖了适用于Oracle8的SQL*Loader-100:如果您在让sqlldr部分正常工作方面仍有困难,我建议您提出第二个问题。我还根据您的以下回答提供了答案。
#include <cstdio>
#include <iostream>
#include <string>

int main()
{
   // Set file names based on your input etc... just using dummies below
   std::string
     ctrlFileName = "file1",
     logFileName  = "file2",
     cmd = "sqlldr usr/pwd@LT45 control=" + ctrlFileName + " log=" + logFileName ;

   std::cout << "Executing Command: " << cmd << std::endl ;

   FILE* pipe = popen(cmd.c_str(), "r");

   if (pipe == NULL)
   {
     return -1;
   }

   char buffer[128];
   std::string result = "";

   while(!feof(pipe))
   {
     if(fgets(buffer, 128, pipe) != NULL)
     {
         result += buffer;
     }
  }

   std::cout << "Results: " << std::endl << result << std::endl ;

   pclose(pipe);
}