Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
manking
1 / 1 / 0
Регистрация: 28.09.2010
Сообщений: 106
#1

Следует ли пользоваться командой system()? - C++

05.10.2010, 02:32. Просмотров 979. Ответов 8
Метки нет (Все метки)

С помощью функции system можно легко работать с файлами и каталогами.

Но возникает 3 вопроса.

1) копировать перемещать удалять файлы лучше этой командой или api или другими библиотеками?
Потому что во всех примерах что нахожу используются winapi.

2) Эта функция посылает команды только для windows или она еще и для других систем подходит?

3) Эта функция посылает всё что ввел в командную строку, или она всё проверяет и что то может обрезать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.10.2010, 02:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Следует ли пользоваться командой system()? (C++):

Какими методами для работы с файлами и каталогами следует пользоваться? - C++
Недавно изучаю, C++. И в отличие от PHP, он наполнен большим количеством функций, для решения одной и той же задачи. Когда я ищу в...

Работа с командой system - C++
У меня программа запускает компиляцию файла-паскаль через консоль system("start D:\\2.6.0\\bin\\i386-win32\\fpc.exe D:\\file.pas");...

Можно ли закрыть приложение командой в консоле, если открыл командой system();? - C (СИ)
Открыл system("roulette.JPG"); А как закрыть?

Как пользоваться командой INSERT INTO? - C# ASP.NET
Подскажите, плиз, как пользоваться этой командой? Почему у меня в ответ на эти строки: SQL = 'INSERT INTO Users(FIO, Name, Passwd,...

Как пользоваться командой CHOICE? - CMD/BAT
Что-то я никак не въеду в работу команды choice :-| Не пойму как она работает? как определяет что делать при выборе варианта или как...

Как правильно пользоваться командой man - Ubuntu Linux
Как пользоваться справкой man (с выбором раздела)?

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
illuminati
20 / 20 / 4
Регистрация: 14.06.2010
Сообщений: 108
05.10.2010, 03:09 #2
она находит в системе командный интерпретатор и передает ему команду... не важно, линукс, виндовс, главное чтоб интерпретатор был...
кстати вопрос: с какой библиотекой она подключается?
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
05.10.2010, 03:24 #3
illuminati, без библиотек...
Нет. Не прав. Но с iostream вполне.
C++
1
2
3
4
5
6
7
#include <iostream>
 
int main()
{
    system("pause");
    return 0;
}
manking
1 / 1 / 0
Регистрация: 28.09.2010
Сообщений: 106
05.10.2010, 03:25  [ТС] #4
Цитата Сообщение от illuminati Посмотреть сообщение
она находит в системе командный интерпретатор и передает ему команду... не важно, линукс, виндовс, главное чтоб интерпретатор был...
кстати вопрос: с какой библиотекой она подключается?
iostream
std::system()
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
05.10.2010, 03:42 #5
1) копировать перемещать удалять файлы лучше этой командой или api или другими библиотеками?
Потому что во всех примерах что нахожу используются winapi.

2) Эта функция посылает команды только для windows или она еще и для других систем подходит?

3) Эта функция посылает всё что ввел в командную строку, или она всё проверяет и что то может обрезать?
1. Эта штука выполняет действия посредством программ, в то время как api не требует программ (а ведь программы можно убрать, заблокировать)

2. Она действует как человек, набирающий команду и нажимающий return
наличие интерпретатора команд проверяется через if(system(NULL))

3. Она действует так, будто ты руками набрал эту команду.

минус в том, что вывод от команды нельзя записать в переменную потом
есть расширение в gcc, popen

Код
#include <stdio.h>

       FILE *popen(const char *command, const char *type);

       int pclose(FILE *stream);
manking
1 / 1 / 0
Регистрация: 28.09.2010
Сообщений: 106
05.10.2010, 05:51  [ТС] #6
Цитата Сообщение от accept Посмотреть сообщение
1.
минус в том, что вывод от команды нельзя записать в переменную потом
есть расширение в gcc, popen
Ну можно разными задними ходами всеже получить данные
там поместить вывод в файл

dir >> dir.txt

затем регулярными выражениями выкапывать то что нужно из текстового файла.
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
05.10.2010, 06:45 #7
popen - расширение, то есть не является частью языка и поэтому оно используется в последнюю очередь, а "разными задними ходами" используется вообще где-то за гранью последнего
odip
Эксперт С++
7157 / 3297 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
05.10.2010, 19:57 #8
С помощью функции system можно легко работать с файлами и каталогами.
Вот если совсем делать нечего, тогда можно использовать system() для этих целей
Но лучше не использовать !
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
06.10.2010, 00:37 #9
В MinGW например нужно подключать <cstdlib>. А в VS достаточно <iostream>
Что касается этой функции, то чаще всего ее используют для вызова команды "pause".
А чтобы работать с файлами из нее - не очень вариант. Лучше пользоваться API или стандартными сиплюсплюсовыми функциями/классами.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.10.2010, 00:37
Привет! Вот еще темы с ответами:

Как правильно пользоваться командой "Scatter memvar" - FoxPro
Привет) Подходит ли эта команда, для копирования данных из записи в переменные? И как правильно ей пользоваться?(своими словами...

Html Agility Pack в Windows Phone и ошибка "Следует добавить ссылку на сборку "System.Xml.XPath" - C#
public BashPage() { InitializeComponent(); HtmlDocument doc = new HtmlDocument(); ...

.NET 4.x Важно!При нажатии на кнопке выдает: using System; using System.Collections.Generic; using System - C#
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using...

Что за классы System, System.Drawing, System.Windows.Forms - PascalABC.NET
Народ, объясните пожалуйста что за классы: System, System.Drawing, System.Windows.Forms. В справке как-то ничего не нашел. Если там есть,...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
06.10.2010, 00:37
Ответ Создать тему
Опции темы

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