Форум программистов, компьютерный форум, киберфорум
С++ под Linux
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 08.05.2013
Сообщений: 23
1

Управление программой через терминал

05.06.2013, 15:36. Просмотров 1586. Ответов 6
Метки нет (Все метки)


Здравствуйте, нужно организовать управление консольного приложение через консоль то есть, сейчас программа работает так
перетащили файл откомпилированной программы в терминал нажали Enter и пользователь переходит в программу , а надо что бы пользователь из консоли выводил путь к программе в конце пути указывал команду, программа её выполнила и вернулась обратно в консоль. Если не понятно объяснил могу выложить скрины сразу не получилось ибо ссылку сменило на звездочки.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.06.2013, 15:36
Ответы с готовыми решениями:

Передача файла в программу через терминал
Добрый день. У меня есть программа которая берет данные из файлов, рассчитывает что ей нужно и...

Работа с мышью и браузером (или интернет через терминал)
Как на языке си реализовать: 1) клик мышкой в определенном месте экрана(задавать через координаты...

управление через терминал устройствами посредством PB
Всем привет. Есть устройство, c выводами RX TX (обычный GPS модуль, который без конца в порт...

Управление программой через интернет
Доброго времени суток. Есть два компа, оба подключены по wi-fi к одному роутеру но локалка между...

__________________
Помогаю в написании курсовых работ и дипломов здесь.
Записывайтесь на профессиональные курсы C++ разработчиков
6
Почетный модератор
7370 / 2619 / 275
Регистрация: 29.07.2006
Сообщений: 13,676
05.06.2013, 15:44 2
Цитата Сообщение от Exebiche Посмотреть сообщение
управление консольного приложение через консоль
Если приложение уже консольное, то не понятно, что сделать нужно. Любое консольное приложение запускается, если в терминале написать к нему путь.
0
0 / 0 / 0
Регистрация: 08.05.2013
Сообщений: 23
06.06.2013, 01:23  [ТС] 3
Нужно что бы после указания к нему пути через пробел указывать что нужно сделать то есть
root@root-laptop~$: путь к приложению help
я указал путь к приложению и что бы программа вывила хелп по моему приложению который описан в написанной программе и опять вернулась в консоль то есть
root@root-laptop~$: путь к приложению help
вывила хелп
root@root-laptop~$:
0
1440 / 1321 / 131
Регистрация: 20.03.2009
Сообщений: 4,689
Записей в блоге: 11
06.06.2013, 14:46 4
Exebiche, как ты думаешь, для чего пишут
C
1
int main(int argc, char** argv)
?
0
0 / 0 / 0
Регистрация: 08.05.2013
Сообщений: 23
06.06.2013, 20:05  [ТС] 5
Каким образом это сделать в этом куске кода
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
#include <stdio.h> //стандартный заголовочный файл ввода/вывода
#include <string.h>// string.h — заголовочный файл стандартной библиотеки языка Си, содержащий функции для работы с нуль-терминированными строками и различными функциями работы с памятью.
#include <dirent.h>//работа с папками
#include <sys/types.h>//различные типы данных
#include <sys/stat.h>// информация о файле
#include <time.h>// функции и структуры работы со временем и датой
#include <iostream> //iostream — заголовочный файл с классами, функциями и переменными для организации ввода-вывода в языке программирования C++.
#include <stdlib.h>
 
using namespace std;
 
int do_ls(char*, char *, char); //функция работы с папкой
void dostat(char*,char*);//функция получения информации о файле (принимает имя файла и директорию)
void show_file_info(char*,struct stat*);// выводим всю информацию об файле (из  переменной info_p )
void mode_to_letters(int,char*);  // формариуем в строке STR права доступа к файлу
char* uid_to_name(uid_t);//преобразование ID пользователя в имя пользователя
//char* gid_to_name(gid_t);
    string key;
    int all=0,pd=0,ks=0,vf=0,rf=0,vs=0,ef=0,dp1,kolich=0;
     char modestr[11];
int main(int ac,char* argv[])
{
 
    string vubor;
    char a = 0;
    char name[255];// массив символов - хранит имя файла (или директорию)
 
 
 
    // вывод меню и ввод номера.
    cout << "   Что бы приступить к роботе, набери 'help' " << endl;
    m1:
    cin>>vubor;
if (vubor=="help")
{
cout <<"________________________________________"<<endl;
cout <<"indir - сканирование всех файлов в папке из которой запущена программа"<<endl;
cout <<"dir - сканирование файлов в папке по указаному пути"<<endl;
cout <<"help - помощь по программе"<<endl;
cout <<"exit - выход из программы"<<endl;
 
cout <<"________________________________________"<<endl;
 
cout <<"Возможные ключи:"<<endl;
cout <<"/all - выводит всю информацию об файлах"<<endl;
cout <<"/d - выводит права доступа к файлу"<<endl;
cout <<"/s - выводит количество ссылок на файл"<<endl;
cout <<"/n - выводит имя владельца файла"<<endl;
cout <<"/r - выводит размер файла"<<endl;
cout <<"/t - выводит время создания файла"<<endl;
cout <<"/  - ввести что б закончить вводить ключи"<<endl;
goto m1;
}
 
if (vubor=="indir")
{
    cout <<"-->Введи ключи"<<endl;
 
    m3:
    cin>>key;
    if (kolich!=4)
       {
            if (key=="/d")//права доступа
            {
            pd=1;
            kolich=kolich+1;
            goto m3;
            }
 
            if (key=="/s")//количество ссылок
            {
            ks=1;
            kolich=kolich+1;
            goto m3;
            }
 
            if (key=="/n")//владелец файла
            {
            vf=1;
            kolich=kolich+1;
            goto m3;
            }
 
            if (key=="/r")//размер файла
            {
            rf=1;
            kolich=kolich+1;
            goto m3;
            }
            if (key=="/t")//время создания
            {
            vs=1;
            kolich=kolich+1;
            goto m3;
            }
 
            if (key=="/")
            goto m2;
            if (key=="/all")
            {
            all=1;
            goto m2;
            }
            else
            {
            cout<<"no such key"<<endl;
            goto m3;
                }
       }
 
 
m2:
 
 
 
 
 
 int count; //счетчик файлов
            // если нужно выводить все файлы директории - имя директории "."
            // а имя файла - пустая строка
            strcpy(name, "."); //копируем имя файла или имя директории
            if(ac==1)
            {
                count = do_ls(name, (char*)"", a); //выполнение функции на проверку существования файлов
            }
            else
            {
                while (--ac)
                {
                  //  cout <<*++argv<<endl;
                    do_ls(*argv, (char*)"", a);//выполнение функции на проверку существования файлов
                }
            }
 
            cout << "Количество файлов = " << count << endl; //вывод количества файлов в папке
 
goto m1;
}//////////
 
if (vubor=="dir")
{
 
cout<<"-->Введи путь к папке: ";
 int count; //счетчик файлов
            // если нужно выводить все файлы директории - имя директории "."
            // а имя файла - пустая строка
            cin>>name;
 
 
    /////////////////
     cout <<"-->Введи ключи"<<endl;
 
    m4:
    cin>>key;
    if (kolich!=4)
       {
            if (key=="/d")//права доступа
            {
            pd=1;
            kolich=kolich+1;
            goto m4;
            }
 
            if (key=="/s")//количество ссылок
            {
            ks=1;
            kolich=kolich+1;
            goto m4;
            }
 
            if (key=="/n")//владелец файла
            {
            vf=1;
            kolich=kolich+1;
            goto m4;
            }
 
            if (key=="/r")//размер файла
            {
            rf=1;
            kolich=kolich+1;
            goto m4;
            }
            if (key=="/t")//время создания
            {
            vs=1;
            kolich=kolich+1;
            goto m4;
            }
 
            if (key=="/")
            goto m5;
            if (key=="/all")
            {
            all=1;
            goto m5;
            }
            else
            {
            cout<<"no such key"<<endl;
            goto m4;
                }
       }
 
 
m5:
 
 
    /////////////////
 
 
 
 
            if(ac==1)
            {
                count = do_ls(name, (char*)"", a); //выполнение функции на проверку существования файлов
            }
            else
            {
                while (--ac)
                {
                    cout <<*++argv<<endl;
                    do_ls(*argv, (char*)"", a);//выполнение функции на проверку существования файлов
                }
            }
 
            cout << "Количество файлов = " << count << endl; //вывод количества файлов в папке
goto m1;
}//////////
 
if (vubor=="exit")
return 0;
else
{
    cout<<"syntax error"<<endl;
    goto m1;
    }
 
     return 0;
     }
0
1440 / 1321 / 131
Регистрация: 20.03.2009
Сообщений: 4,689
Записей в блоге: 11
07.06.2013, 14:06 6
Exebiche, ac это количество аргументов, переданных через командную строку, char* argv[] массив строк с параметрами.
А под unix удобно использовать getopt[rus], и вот пример
0
Почетный модератор
7370 / 2619 / 275
Регистрация: 29.07.2006
Сообщений: 13,676
07.06.2013, 14:09 7
Цитата Сообщение от Exebiche Посмотреть сообщение
Каким образом это сделать в этом куске кода
Парси переданные в main параметры.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.06.2013, 14:09

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь или здесь.

Управление программой через скрипт
Добрый день. Есть программа из пары десятков классов и нескольких сотен методов. Задача состоит в...

Управление программой через браузер
Писали с другом курсач, все расчеты в программе производятся с помощью консольной программы,...

Управление программой через командную строку
Доброго времени суток. Есть программа на с++ в Builder 6 взятая тут:...

Управление программой через свое приложение
Идея такая, открыть программу (например браузер) в окне своей программы (типа как iframe в html) и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.