Считывание командной строки в одну строчку - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Добрый день, подскажите пожалуйста есть есть файл emp.lst и мы его работали с ним так system("cut -d! -f3 emp.lst"); а нужно, чтобы программ считала с командной строки mycut –d! –f3 emp.lst
int main(int argc, char *argv[]){
        //system("cut -d! -f3 emp.lst");
 
        int i ;
        for (i = 0; i < argc; i++){
                printf("arg %d: %s\n", i, argv[i]);
        }
        argv[0] = "cut";
        for (i =  0; i < argc; i++){
                system("%s " , argv[i] );
        }
        return 0;
}
ошибка: too many arguments to function ‘system’ Спасибо!

Решение задачи: «Считывание командной строки в одну строчку»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
 
int main(int argc, char *argv[])
{
    if(argc < 2)
        fprintf(stderr, "Usage: prog arg [arg...]\n");
    else
    {
        execvp(argv[1], argv + 1);
        perror("execv");
    }
    exit(EXIT_FAILURE);
}

Объяснение кода листинга программы

Вывод списка элементов кода:

  1. #include
  2. #include
  3. #include
  4. *int main(int argc, char argv[])**
  5. {
  6. if(argc < 2)
  7. {
  8. fprintf(stderr, Usage: prog arg [arg...]\n);
  9. }
  10. else
  11. {
  12. execvp(argv[1], argv + 1);
  13. perror(execv);
  14. }
  15. exit(EXIT_FAILURE);
  16. } Описание действий:
    • Линии 1-3: Включают необходимые для работы программы заголовочные файлы.
    • Линия 4: Определяет точку входа в программу - функцию main.
    • Линии 5-7: Проверяет, что введенный аргумент командной строки больше одного. Если это условие не выполняется, выводит сообщение об использовании программы.
    • Линии 8-11: Если условие проверки выполняется, то программа передает управление команде execvp.
    • Линии 12-13: В случае ошибки выполнения команды execvp, выводится сообщение об ошибке с помощью функции perror.
    • Линия 15: Программа завершается с кодом ошибки EXIT_FAILURE.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.2 из 5
Похожие ответы