Проблемы с execvp () и неполными командами с несколькими аргументами

Ну, единственное, что я могу рассказать вам, это getters:

var foo = {
  a: 5,
  b: 6,
  get c () {
    return this.a + this.b;
  }
};

foo.c; // 11

Это синтаксическое расширение, введенное спецификацией ECMAScript 5th Edition, синтаксис поддерживается большинством современных браузеров (в том числе IE9).

0
задан Flacarile 23 March 2019 в 16:34
поделиться

1 ответ

Одна из идей из комментария полностью ответила на мой вопрос (к точным потребностям, которые у меня были). Не уверен, как отдать ему должное здесь.

Решение состоит в том, чтобы просто закрыть стандартный ввод прямо перед использованием execvp (). Если команда не была выполнена при первом сканировании, программа выдает ошибку, которая является идеальной. Поскольку я запускаю основную программу, которую я использую в цикле, я могу использовать dup и dup2 для сохранения и перезагрузки стандартного ввода позже.

Код, который я использовал для проверки работоспособности:

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <fcntl.h>
#include <unistd.h>

int main(int argc, char* argv[]) {
        char command[1000];

        int stdinput = dup(STDIN_FILENO);

        close(STDIN_FILENO);

        dup2(stdinput, STDIN_FILENO);


        printf("Enter command: ");
        scanf("%[^\n]s", command);


        printf("%s\n", command);
}
0
ответ дан Flacarile 23 March 2019 в 16:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: