Pregunta

¿Cómo puedo aplicar el comando chmod de archivos mediante el uso de exec? Le agradecería si alguien me puede proporcionar un código.

¿Fue útil?

Solución

intente esto: http://support.sas. com / documentación / onlinedoc / SASC / doc / LR2 / execve.htm véase también: http://linux.about.com/library/cmd/blcmdl3_execvp.htm

  #include <sys/types.h>
  #include <unistd.h>
  #include <stdio.h>

  main()
  {
     pid_t pid;
     char *parmList[] = {"/bin/chmod", "0700", "/home/op/biaoaai/bead",NULL}; 

     if ((pid = fork()) ==-1) //fork failed
        perror("fork error");
     else if (pid == 0) { //child (pid==0 if child)
        execvp("chmod", parmList);
        printf("Return not expected. Must be an execve error.n");
     } else { //parent (pid==child process)
        //parent specific code goes here
     }
  }

Editar:. En realidad nunca compilado ... actualizado con los usuarios paramlist de trabajo

Otros consejos

No voy a mostrar un modelo de trabajo, pero execve () funciona de esta manera:

char *args[] = {"foo", "argument1", "argument2", (char *)NULL};

... mango bifurcación ....

res = execve("/sbin/foo", args, (char *)NULL);

... mango execve () en su ausencia ....

El tercer argumento a execve () se deja como ejercicio para el lector a la investigación, NULL puede o puede no ser adecuado para su asignación. Además, su hasta usted para determinar cuál debe ser el tipo res y lo que debe ser igual en caso de éxito. NULL Aviso de fundición.

El especificación UNIX única suele ser un lugar bueno para comenzar .

A partir de código C, llamando directamente chmod (2) casi seguro que habrá una mejor opción que pasar por toda la molestia de tenedor () ing y exec () ing.

Es cierto que la mayor parte de que sin problemas es la parte tenedor (), y si el programa no necesita hacer nada más después de la llamada exec (), a continuación, sólo se ejecuta una de las exec funciones de la familia () sin bifurcación es razonablemente bien (para un ejercicio en el uso de exec (), que es).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top