Помню, в ТурбоСИ 20 было:
system("КомадаДос");
Каким образом можно вызвать из gcc команду шелла ?
LinuxForum.Fans
Каким образом можно вызвать из gcc команду шелла?
Автор: vadim56
7 сообщений
2894 просмотров
Команды вызывает программа, а не компилятор. Вызов execl(путь) запускает другую программу в текущем процессе. После завершения команды наша программа тоже завершится.
man execl
text
execute("/путь к файлу скрипта шелл");AndreyMust19, Leviafan,
Не путайте вы человека!
vadim56,
Если Вам нужно просто вызвать из программы команду шелла, то так и пишите, как в ТурбоСи:
text
system(<command>);Для справки:
execl и иже с ними замещают текущий процесс, а в данном случае, похоже, это не нужно.
execute - это вообще не из той оперы, это - SQL
Hvzh
execl и иже с ними замещают текущий процесс,
Я про это и сказал :):
После завершения команды наша программа тоже завершится.
а в данном случае, похоже, это не нужно.
Пока не понятно что именно нужно ТС. Если запустить другую программу, то и execl и system подойдет.
vadim56
команду шелла ?
Вы имеете в виду с учетом PATH?
ну хз, в сочетании с Qt работаетexecute - это вообще не из той оперы, это - SQL
Помню, в ТурбоСИ 20 было:
system("КомадаДос");
Если вы имеете в виду, как в программе на языке Си - то также. man system:
SYSTEM(3) Linux Programmer's Manual SYSTEM(3)
NAME
system - execute a shell command
SYNOPSIS
#include <stdlib.h>
int system(const char *command);
DESCRIPTION
system() executes a command specified in command by calling /bin/sh -c command, and returns after the command has been completed. During
execution of the command, SIGCHLD will be blocked, and SIGINT and SIGQUIT will be ignored.
RETURN VALUE
The value returned is -1 on error (e.g. fork(2) failed), and the return status of the command otherwise. This latter return status is
in the format specified in wait(2). Thus, the exit code of the command will be WEXITSTATUS(status). In case /bin/sh could not be exe
cuted, the exit status will be that of a command that does exit(127).
If the value of command is NULL, system() returns nonzero if the shell is available, and zero if not.
system() does not affect the wait status of any other children.
CONFORMING TO
C89, C99, POSIX.1-2001.
Войдите или зарегистрируйтесь, чтобы ответить.