Was stimmt hier nicht?



  • #include <iostream>
    using namespace std;
    
    int main(int argc, char *argv[])
    {
    
            char fname[] = "echo";
    
            char args[2][10] = {"echo", "blubb"};
    
          execv(fname, args);
    
            return 0;
            }
    

    ich würde gerne wissen was das für ne message ist bzw. wie ich die interpretieren kann:

    test.cpp: In function 'int main(int, char**)':
    test.cpp:11: error: cannot convert 'char (*)[10]' to 'char* const*' for argument '2' to 'int execv(const char*, char* const*)
    


  • execv will kein zweidimensionales char-Array, sondern ein eindimensionales char-Zeiger-Array. Das ist nicht dasselbe. Ein Array ist kein Zeiger.



  • Schreib:

    char *param[] = {"blubb", 0};
    execv("echo", param);
    

    dann sollte es das tun.


Anmelden zum Antworten