Saltar al contenido

os.execv sin argumento args

Solución:

Estas tres variantes pueden resolver el problema:

cmd = '/usr/bin/vi'
os.execv(cmd, (' ',))
os.execv(cmd, [' '])
os.execl(cmd, '')

Normalmente, el primer parámetro de una lista de argumentos (sys.argv) es el comando que se ha utilizado para invocar la aplicación. Entonces es mejor usar uno de esos:

cmd = '/usr/bin/vi'
os.execv(cmd, (cmd,))
os.execv(cmd, [cmd])
os.execl(cmd, cmd)

os.exec * documentación en python.org

Bien, después de preguntar en IRC, señalaron por qué funciona de esta manera.

El primer argumento (arg0) es normalmente el nombre de archivo de lo que está ejecutando (sys.argv[0] por ejemplo), por lo que el primer argumento siempre debe ser el nombre del archivo.

Esto explica por qué los argumentos no son opcionales, en IRC dijeron que arg0 es lo que la aplicación pensará que es su nombre.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *