Programar orden echo de Unix [C]

Iniciado por kur79, 30 Septiembre 2015, 20:42 PM

0 Miembros y 1 Visitante están viendo este tema.

kur79

Pues eso, estoy empezando con Shell y de c++ controlo bien. Trato de hacer esto:

Realice un programa en C equivalente a la orden echo, es decir, un programa que lo único que haga sea mostrar sus argumentos. Llámelo eco. Ejecute
  $ eco a b

  $ eco *

Según tengo entendido tengo que usar los int argc, char** argv del main, pero no se. a ver si alguien podría guiarme un poco.

ivancea96

Código (cpp) [Seleccionar]
int main(int argc, char** argv){
    cout << argv[0];
}


Quitando el primer argumento que es el ejecutable en sí, los otros, si los hay, son los argumentos.

kur79

uuuf no lo entiendo, por qué se hace lo de mostrar el argv[0] directamente, si está vacio.
Y eso sería en c++, hacer el cout en c que sería printf(argv[0]);

El c++ si lo controlo bastante bien, pero el c no entiendo casi nada y eso que son practicamente lo mismo.

ivancea96

Cita de: xen95 en 30 Septiembre 2015, 21:16 PM
uuuf no lo entiendo, por qué se hace lo de mostrar el argv[0] directamente, si está vacio.
Y eso sería en c++, hacer el cout en c que sería printf(argv[0]);

El c++ si lo controlo bastante bien, pero el c no entiendo casi nada y eso que son practicamente lo mismo.

Ese código que te puse es C++, obviando las librerías y uso de namespaces. Saber C++ implica saber C, tenlo en cuenta.

Código (cpp) [Seleccionar]
int main(int argc, char** argv){
    for(int i=1; i<argc; i++){
        cout << argv[i];
        if(i+1<argc)
            cout << ' ';
    }
}