Подскажите кто в этом понимает для чего эти функции нужны, как их использовать(желательно на простом и понятном для чайников языке) и примеры небольших программок с использованием этих функций, чтобы лучше понять все это. В нэте смотрел, но че то непонятно написано смотрел еще и справку MSDN в ней тоже непонятно все на английском языке, а примеры слишком сложные
Я имею виду функции (execl,execle,execlp...еще есть какие-то) в языке С. Чем они различаются кроме формата объявления, как этими функциями пользоваться, примеры программ с использованием их...теперь вроде понятно написал.
http://www.codenet.ru/progr/cpp/spr/084.php
Теорию эту я уже видел, а вот примеров еще этих не видел. Но они мне че то не очень понятны.
int main(int argc,char *argv[])
{
int loop;
printf("%s работает...nn",argv[0]);
if(argc == 1) /* есть ли еще аргументы */
{
printf("%s запускает сама себя опять...n",argv[0]);
execl(argv[0],argv[0],"ONE","TWO","THREE",NULL);
perror("EXEC:");
exit(1);
}
printf("%s вызвана с аргументами:n",argv[0]);
for(loop = 1;loop<=argc;loop++)
puts(argv[loop]);
return 0;
} Я непонимаю в execl(argv[0],argv[0],"ONE","TWO","THREE",NULL) то, что стоит в скобочках. argv[0]-путь к пограмме, а остальное зачем "ONE","TWO","THREE",NULL и непонятно, что делает эта функция
Еще непонятно вот что в примере(см. ниже) строчка execvp("CHILD.EXE",argv);void main(int argc,char **argv)
зачем в ф. main применено указатель на указателе
#include<process.h>
#include<stdio.h>
#include<errno.h>
#include<stdlib.h>
#include<string.h>
#include<dos.h>
void main(int argc,char **argv)
{
printf("Запуск CHILD с arg1, arg2 ...\n");
execvp("CHILD.EXE",argv);
perror("Ошибка EXEC");
exit(1);
}
shplint, ты можешь объявлять функцию main так:
Квазимодо, вррбще то я не об этом спрашивал...
Ну, я увидел вот это:
Про это тоже конечно, но че то я несовсем уловил то что написал, да и ваще че то я не могу вкурить эти exec.
for (i = 0; i<argc; i++) {
// здесь что-то делаешь со строкой argv[i]
}Я думаю что вот так эта строчка правильная будет, можешь простым и понятным языком объяснить мне тупому эти exec?
shplint, может стоит все-таки сесть и самому попробовать написать что-нибудь с использованием этих функций, чтобы воочию увидеть как они работают. Не понятно, что тебе непонятно в этих функциях? По-моему все вполне очевидно.
Админ, IMHO, на твой вопрос:
Еще такой вопросик: написал программу по лабораторке, но у меня не производится действий команды dir. Программа должна после указания пути к программе, после которого вводится пробел, и ключа выполнить команду dir.См. алгоритм:
#include "stdafx.h"
#include <conio.h>
#include <string.h>
#include<stdio.h>
#include<process.h>
int main(int argc,char *argv[],char *env[])
{
if (argc==1)
{
printf("\n\n\t\tTechnical support Mahonin M.S.");
printf("\n\t\t\t e-mail:shplint2@yandex.ru");
printf("\n\t\t\t icq:3302883");
return 0;
}
if (strncmp(argv[1],"-/?",3)==NULL)
{
printf("\n%s",argv[0]);
printf("\nAll right belong autor this programm ");
return 0;
}
if (strncmp(argv[1],"-dir",4)==NULL)
{
execl("dir.exe","dir.exe",NULL);
return 0;
}
}
Укажите на мои ошибки, пожалуйста. Постановка задачи думаю понятна.
Постарайтесь ответить на последний пост побыстрее...
Не может быть такого что никто не знает, не поленитесь ответить на мой пустячковый вопрос
shplint, нет такого файла dir.exe, а есть командный процессор (cmd.exe), и в него через командную строку передается твой dir. Поэтому строку
shplint, я понимаю что не терпится увидеть ответ, но в выходные достаточно большое количество народа занимается тем что отдыхает. В т.ч. от компьютера. Не стоит подпрыгивать от нетерпения и постить на форум фразы "ну когда уже"
execlp("cmd.exe","cmd.exe","/c","dir",NULL);
cmd.exe-это путь
cmd.exe,/c;dir-это аргументы, а зачем мы берем каждый из них?
shplint, а трудно самому выполнить Пуск -> Выполнить -> cmd /c dir -> OK и посмотреть что получится.
А если непонятно, то всегда есть справка. Когда же вы научитесь пользоваться документацией в электронном и печатном виде, ну в самом деле? Банальное "cmd /?" выполниться несудьба. Там же по-русски написано все.
Учитесь, учитесь дорогой пользоваться доступной информацией. А еще учитесь думать и пробовать сами. Никто за вас ничто делать просто-так не будет - закон жизни
Я еще только учусь и вполне естественно что у меня возникают вопросы, вопросы не возникаю только у тех кто ничего не делают, надеюсь ты с этим согласен.
И еще вопрос, не понятно как например показать содержимое не диска с, а вполне определенной папки?
execlp("cmd.exe","cmd.exe","/c","dir","c:\command\programm1",NULL); если в коммандной строке ввести cmd.exe /c dir c:\command\programm1 содержимое папки показывается. А если через путь к программе то нет, почему так?
Попробуй так:
Все равно не хочет работать, даже с двумя обратными слэшами
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)