elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  duda sobre comando system
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: duda sobre comando system  (Leído 417 veces)
Unvoid

Desconectado Desconectado

Mensajes: 10


Ver Perfil
duda sobre comando system
« en: 27 Octubre 2020, 10:20 »

Hola! estoy empezando con la programacion en C y tengo una duda sobre el comando system.

en principio con las ordenes sencillas me funciona pero cuando he intentado hacer un programa que simplemente añadiera chrome a mis variables de entorno para poder ejecutar chrome desde la consola.
el
system("PATH %PATH% C:/blablabla");

no se me ejecuta, por lo que el siguiente comando como es logico (system("chrome.exe");
pues no lo puede ejecutar.

He buscado pero no consigo saber la razon por la que no funciona si en teoria el comando lo que hace es pasarle la orden a la shell.

gracias!!


En línea

[D]aniel

Conectado Conectado

Mensajes: 136



Ver Perfil
Re: duda sobre comando system
« Respuesta #1 en: 27 Octubre 2020, 13:38 »

Hola, hay alternativas para ejecutar órdenes al sistema:

https://es.m.wikipedia.org/wiki/Execve

http://manpages.ubuntu.com/manpages/artful/es/man3/exec.3.html

http://sopa.dis.ulpgc.es/prog_c/PROCES.HTM




Saludos


En línea

Unvoid

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: duda sobre comando system
« Respuesta #2 en: 27 Octubre 2020, 15:38 »


hola!
gracias por tu respuesta, por lo que veo ese comando que dices es para sistemas UNIX, yo en principio estaba haciendo el codigo en windows :P
En línea

EdePC
Colaborador
***
Desconectado Desconectado

Mensajes: 1.393



Ver Perfil
Re: duda sobre comando system
« Respuesta #3 en: 27 Octubre 2020, 15:42 »

Saludos,

En Windows tienes que considerar que cada llamada a system() es como ejecutar una nueva cmd.exe con la instrucción dada, también que el cambio en la variable de entorno Path es temporal y solo es válido para esa cmd.exe ejecutada.

Entre las muchas soluciones que hay puedes hacer lo siguiente dependiendo de tus requerimientos:

- Editar el Path de manera permanente (SetX o haciendo el cambio en el Regedit)

- Agregar la entrada en Regedit como aplicación conocida (HKCU\Software\Microsoft\Windows\CurrentVersion\App Path), para que sea llamada con Start o Ejecutar

- Ejecutar instrucciones en cadena (con &):

Código
  1. #include <stdio.h>
  2. #include <windows.h>
  3.  
  4. int main() {
  5.  
  6.  system("PATH %PATH%;C:\\Program Files\\Google\\Chrome\\Application; & chrome.exe");
  7.  
  8.  getchar();
  9.  return 0;
  10. }
En línea

Unvoid

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: duda sobre comando system
« Respuesta #4 en: 27 Octubre 2020, 16:21 »

Saludos,

En Windows tienes que considerar que cada llamada a system() es como ejecutar una nueva cmd.exe con la instrucción dada, también que el cambio en la variable de entorno Path es temporal y solo es válido para esa cmd.exe ejecutada.

Entre las muchas soluciones que hay puedes hacer lo siguiente dependiendo de tus requerimientos:

- Editar el Path de manera permanente (SetX o haciendo el cambio en el Regedit)

- Agregar la entrada en Regedit como aplicación conocida (HKCU\Software\Microsoft\Windows\CurrentVersion\App Path), para que sea llamada con Start o Ejecutar

- Ejecutar instrucciones en cadena (con &):

Código
  1. #include <stdio.h>
  2. #include <windows.h>
  3.  
  4. int main() {
  5.  
  6.  system("PATH %PATH%;C:\\Program Files\\Google\\Chrome\\Application; & chrome.exe");
  7.  
  8.  getchar();
  9.  return 0;
  10. }

dios eso era, que cada comando es una cmd distinta.
mil gracias, sabia que el comando que estaba poniendo solo era temporal pero no habia caido en eso de diferentes consolas, ahora tiene todo el sentido del mundo  :laugh:
muchas gracias!!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda sobre Comando Ejecutar
Programación Visual Basic
Zinc 1 729 Último mensaje 20 Junio 2006, 13:32
por FaiF (A¥åHøRå)
Duda sobre comando extraer
Scripting
8789poli 2 4,915 Último mensaje 14 Noviembre 2008, 17:59
por 8789poli
[BATCH] Duda sobre comando erase
Scripting
xpaRtanus 4 2,211 Último mensaje 12 Marzo 2013, 18:50
por xpaRtanus
duda sobre comando AT en batch
Scripting
crazykenny 6 2,552 Último mensaje 28 Febrero 2014, 13:54
por crazykenny
Ejecutar comando en C++ sin system()
Programación C/C++
alpachino98 4 781 Último mensaje 11 Febrero 2019, 22:58
por ThunderCls
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines