Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    [C] aprire programma esterno

    Salve,
    stò cercando una funzione che permette di aprire un programma esterno dal codice C, potrei anche aprire una console e richiamare emacs da questa..
    In particolare (se ho ben capito!) devo includere un file e poi aprire il suo contenuto con emacs o VI:

    Codice PHP:
    #include <stdio.h> 
    -----> #include "sys.TAGS"

    int main() {
    printf("Hello World!");
    ----> 
    APRI(emacs("sys.TAGS"));
    return 
    0;

    Il file .TAGS è stato creato in precedenza tramite il comando etags.

  2. #2
    Usa la normale system():
    codice:
    system("emacs sys.tags");
    .
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Grazie mille per la tua risposta.
    Approfitto per un'altra veloce domandina: quando mostro il risultato con emacs non è possibile utilizzare il contenuto del .TAGS che proviene dall'include invece che richiamare nuovamente questo file all'interno della direttiva system??

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Spiegati meglio ...

  5. #5
    dunque, nel codice includo un file sys.TAGS, quindi in qualche modo il suo contenuto viene caricato al momento della compilazione no?! non potrei allora sfruttare queste informazioni che già ho per mostrarle da emacs, invece di richiamare il file sys.TAGS all'interno della system?

    spero di esserci riuscito, scusate ma da spiegare non è molto semplice, sicuramente lo sarà di più la sua implementazione...

    Codice PHP:
    #include <stdio.h> 
    -----> #include "sys.TAGS" 
     
    int main() { 
    printf("Hello World!"); 
    ----> 
    APRI(emacs("sys.TAGS")); 
    return 
    0


  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma che vuol dire "includere" il file sys.TAGS ?

    Cosa c'e' in quel file?

    I file che si includono sono i .h e contengono definizioni di costanti, strutture e dichiarazioni di funzioni ... questo e' un linguaggio di programmazione ...

    Puo' essere che stai facendo confusione?

  7. #7
    Originariamente inviato da oregon
    Ma che vuol dire "includere" il file sys.TAGS ?

    Cosa c'e' in quel file?

    I file che si includono sono i .h e contengono definizioni di costanti, strutture e dichiarazioni di funzioni ... questo e' un linguaggio di programmazione ...

    Puo' essere che stai facendo confusione?
    Non mi sembra perchè come ho spiegato in precedenza il file sys.TAGS è stato creato con etags su una cartella che conteneva solo files .h, quindi non è altro che una collezione di .h.
    E poi scusa io posso includere anche un file .mio, basta che all'interno ci sia codice C compilabile,
    chi lo dice che devono essere solo .h??

  8. #8
    Originariamente inviato da TommyGun
    Non mi sembra perchè come ho spiegato in precedenza il file sys.TAGS è stato creato con etags su una cartella che conteneva solo files .h, quindi non è altro che una collezione di .h.
    Non l'avevi spiegato... hai solo detto che è stato creato con etags.
    E poi scusa io posso includere anche un file .mio, basta che all'interno ci sia codice C compilabile,
    chi lo dice che devono essere solo .h??
    È una convenzione.
    dunque, nel codice includo un file sys.TAGS, quindi in qualche modo il suo contenuto viene caricato al momento della compilazione no?! non potrei allora sfruttare queste informazioni che già ho per mostrarle da emacs, invece di richiamare il file sys.TAGS all'interno della system?
    No che non puoi, perché al momento dell'inclusione il precompilatore genera un file intermedio che contiene il contenuto del file .C più il contenuto di tutti i file che hai incluso in esso (compreso il .TAGS), e quindi tale file viene dato in pasto al compilatore vero e proprio, che lo trasforma in codice oggetto che il linker linka con gli altri moduli generando l'eseguibile. In ogni caso all'interno del tuo eseguibile non rimane traccia del file sys.TAGS originale, e men che meno può essere modificato dall'utente.
    Amaro C++, il gusto pieno dell'undefined behavior.

  9. #9
    Ok grazie per la risposta.

    Ho appena provato includendo un file .TAGS con una #define dentro e tutto ha funzionato a meraviglia. Ho potuto tranquillamente utilizzare la costante nel programma .c senza ombra di errori o warning.

  10. #10
    Originariamente inviato da TommyGun
    Ho appena provato includendo un file .TAGS con una #define dentro e tutto ha funzionato a meraviglia. Ho potuto tranquillamente utilizzare la costante nel programma .c senza ombra di errori o warning.
    Nessuno ha mai detto che tu non possa farlo... semplicemente, si usa includere file .h perché salti subito all'occhio che sono file di header.
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.