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

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

Войти
Регистрация
Восстановить пароль
 
sssemil
3 / 3 / 1
Регистрация: 29.01.2013
Сообщений: 91
#1

Ошибки при компиляции - C++

29.08.2013, 17:06. Просмотров 1055. Ответов 7
Метки нет (Все метки)

Привет. Помогите с ошибками разобратся:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdlib.h>
#include <iostream>
#include <stdio.h>
#include <string.h>
 
using namespace std;
 
int main(int argc, char *argv[])
{
   const char log_path[249] = "";
   if(argc != 2)
   {
      log_path = "/var/log/auth.log";
   }
   else
   {
      log_path = argv[1];
   }
   system("export DISPLAY=:0 && tail -fn0 /var/log/auth.log | while read line ; do echo \"$line\" | grep \"Accepted\" ; if [ $? = 0 ] ; then notify-send \"Security Warning\" \"$(echo \"$line\" | grep \"Accepted\")\" -u critical -i /usr/local/alert/icon.png ; fi ; done &>" + log_path);
}
g++ tes.cpp -o tes
tes.cpp: In function ‘int main(int, char**)’:
tes.cpp:13:16: error: assignment of read-only variable ‘log_path’
log_path = "/var/log/auth.log";
^
tes.cpp:13:16: error: incompatible types in assignment of ‘const char [18]’ to ‘const char [249]’
tes.cpp:17:16: error: assignment of read-only variable ‘log_path’
log_path = argv[1];
^
tes.cpp:17:16: error: incompatible types in assignment of ‘char*’ to ‘const char [249]’
tes.cpp:19:276: error: invalid operands of types ‘const char [249]’ and ‘const char [249]’ to binary ‘operator+’
system("export DISPLAY=:0 && tail -fn0 /var/log/auth.log | while read line ; do echo \"$line\" | grep \"Accepted\" ; if [ $? = 0 ] ; then notify-send \"Security Warning\" \"$(echo \"$line\" | grep \"Accepted\")\" -u critical -i /usr/local/alert/icon.png ; fi ; done &>" + log_path);
^
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.08.2013, 17:21     Ошибки при компиляции #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int main(int argc, char *argv[])
{
   char log_path[249] = "";
   if(argc != 2)
   {
      strcpy(log_path, "/var/log/auth.log");
   }
   else
   {
      strcpy(log_path, argv[1]);
   }
   
   char str[500] = "export DISPLAY=:0 && tail -fn0 /var/log/auth.log | while read line ; do echo \"$line\" | grep \"Accepted\" ; if [ $? = 0 ] ; then notify-send \"Security Warning\" \"$(echo \"$line\" | grep \"Accepted\")\" -u critical -i /usr/local/alert/icon.png ; fi ; done &>";
   strcat(str, log_path);
   
   system(str);
}
sssemil
3 / 3 / 1
Регистрация: 29.01.2013
Сообщений: 91
29.08.2013, 17:27  [ТС]     Ошибки при компиляции #3
alsav22, Премного благодарен)
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.08.2013, 17:29     Ошибки при компиляции #4
Или так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int main(int argc, char *argv[])
{
   const char *log_path;
   if(argc != 2)
   {
      log_path = "/var/log/auth.log";
   }
   else
   {
      log_path = argv[1];
   }
   
   char str[500] = "export DISPLAY=:0 && tail -fn0 /var/log/auth.log | while read line ; do echo \"$line\" | grep \"Accepted\" ; if [ $? = 0 ] ; then notify-send \"Security Warning\" \"$(echo \"$line\" | grep \"Accepted\")\" -u critical -i /usr/local/alert/icon.png ; fi ; done &>";
   strcat(str, log_path);
   
   system(str);
}
eXtream
24 / 24 / 0
Регистрация: 10.03.2010
Сообщений: 161
29.08.2013, 17:36     Ошибки при компиляции #5
Цитата Сообщение от sssemil Посмотреть сообщение
const char log_path[249]
элементы массива изменять нельзя
sssemil
3 / 3 / 1
Регистрация: 29.01.2013
Сообщений: 91
29.08.2013, 18:15  [ТС]     Ошибки при компиляции #6
Теперь немного другая проблема...почкму то лог в нужный фаил не идет, а на консоль выводится(хотя если написать эту команду в терминале то все норм робит)
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
#include <stdlib.h>
#include <iostream>
#include <stdio.h>
#include <string.h>
 
using namespace std;
 
int main(int argc, char *argv[])
{
   char log_path[249] = "";
   if(argc != 2)
   {
      strcpy(log_path, "/var/log/ssh_alert.log");
   }
   else
   {
      strcpy(log_path, argv[1]);
   }
   
   char str[500] = "(export DISPLAY=:0 && tail -fn0 /var/log/auth.log | while read line ; do echo \"$line\" | grep \"Accepted\" ; if [ $? = 0 ] ; then notify-send \"Security Warning\" \"$(echo \"$line\" | grep \"Accepted\")\" -u critical -i /usr/local/alert/icon.png ; fi ; done) &> ";
   strcat(str, log_path);
   cout<<str<<endl;
   system(str);
}
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
29.08.2013, 18:22     Ошибки при компиляции #7
Цитата Сообщение от sssemil Посмотреть сообщение
Теперь немного другая проблема...почкму то лог в нужный фаил не идет, а на консоль выводится(хотя если написать эту команду в терминале то все норм робит)
А где файл вообще? Я не вижу открытия.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.08.2013, 18:23     Ошибки при компиляции
Еще ссылки по теме:

C++ Ошибки при компиляции
Ошибки при компиляции C++
C++ Ошибки при компиляции
C++ Ошибки при компиляции
C++ Ошибки при компиляции

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

Или воспользуйтесь поиском по форуму:
sssemil
3 / 3 / 1
Регистрация: 29.01.2013
Сообщений: 91
29.08.2013, 18:23  [ТС]     Ошибки при компиляции #8
Цитата Сообщение от Nekto Посмотреть сообщение
А где файл вообще? Я не вижу открытия.
там запуск shell команды которая делает &> /log)
Yandex
Объявления
29.08.2013, 18:23     Ошибки при компиляции
Ответ Создать тему
Опции темы

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