Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

201
Vistas
C++ (Unix): Open a text file with the default editor

The question is above and my Google search wasn't succesfull. I guess I need to get the default editor and then use system("editor file.txt");? How could I get the default editor?

Edit: I don't know why but stackoverflow doesn't like my "Hey,"... then not.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

There is no official solution. Here is my recommendation for opening up a text editor:

If the filename extension is .txt, and xdg-open is avaliable on $PATH and the $DISPLAY variable is nonempty, then use xdg-open. Otherwise use /usr/bin/sensible-editor if it exists. Otherwise, use getenv("EDITOR"), getenv("VISUAL") or getenv("SELECTED_EDITOR"). If none of them are set, try nano, nano-tiny and then vi.

over 4 years ago · Santiago Trujillo Denunciar

0

There is an example to get default editor environment, from visudo (It use default editor to open sudoers file ) source

/*
     * Check EDITOR and VISUAL environment variables to see which editor
     * the user wants to use (we may not end up using it though).
     * If the path is not fully-qualified, make it so and check that
     * the specified executable actually exists.
     */
    if ((UserEditor = getenv("EDITOR")) == NULL || *UserEditor == '\0')
    UserEditor = getenv("VISUAL");
    if (UserEditor && *UserEditor == '\0')
    UserEditor = NULL;
    else if (UserEditor) {
    if (find_path(UserEditor, &Editor, getenv("PATH")) == FOUND) {
        UserEditor = Editor;
    } else {
        if (def_flag(I_ENV_EDITOR)) {
        /* If we are honoring $EDITOR this is a fatal error. */
        (void) fprintf(stderr,
            "%s: specified editor (%s) doesn't exist!\n",
            Argv[0], UserEditor);
        Exit(-1);
        } else {
        /* Otherwise, just ignore $EDITOR. */
        UserEditor = NULL;
        }
    }
    }

You can check http://www.opensource.apple.com/source/sudo/sudo-9/sudo/visudo.c for the complete code.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda