1

I need to make a linux command from native method in C++, which is iwconfig,also using popen to get the output of this command.

This is my code

std::string exec(const char* cmd) {
FILE* pipe = popen(cmd, "r");
if (!pipe) return "ERROR";
char buffer[128];
std::string result = "";
while(!feof(pipe)) {
  if(fgets(buffer, 128, pipe) != NULL)
  result += buffer;
  }
  pclose(pipe);
  return result;
 }

i wondered if it is possible to call it!!!

so i have this code in this link

Community
  • 1
  • 1
Hana90
  • 943
  • 5
  • 17
  • 37

1 Answers1

0

put the 'iwconfig' inside a shell script and you can run the process direct from android , processing stdout until its done.. this sample executes shell name=./bin/pars_submit.

        public String getFfmpeg(@QueryParam("infil1") String infil1, 
                @QueryParam("infil2") String infil2, @QueryParam("otfil") String otfil,
                @QueryParam("t") String time) {         
        String outfil = "dummy.mp4";

          List<String> command = new ArrayList<String>();
            command.add("vendor/bin/pars_submit");

            command.add(infil1);     

            command.add(infil2);
            command.add(otfil);
            command.add(time);

System.out.println("Starting process " +command.toString());
            ProcessBuilder builder = new ProcessBuilder(command);
            Map<String, String> environ = builder.environment();
//          for(Entry<String, String> entry : environ.entrySet()){
    //          System.out.println("ENV " +entry.getKey() + " " +entry.getValue());
      //      }
//          builder.redirectErrorStream(true);
            Process process = null;
            try {
                process = builder.start();

            InputStream is = process.getInputStream();

            InputStreamReader isr = new InputStreamReader(is);
            BufferedReader br = new BufferedReader(isr);
            String line;
            while ((line = br.readLine()) != null) {  
              //System.out.println(line);
                outfil=line;
            }

//          int exitVal = process.waitFor();
 //           System.out.println("Process exitValue: " + exitVal);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }  
            finally {
                  if (process != null) {
                    process.destroy();
                    process = null;
                  }


                }           


            return outfil;


                }
Robert Rowntree
  • 6,230
  • 2
  • 24
  • 43