• Почему в C++ некорректная работа с переменными и указателями?

    @FloorZ
    Сам принцип программы не правильный. Буффер работает как по мне - не правильно, мы передаем содержимое буффера без учета размера самого _string, в итоге наш массив _string несколько раз перезаписывается мусором из памяти. Плюс передача массива в массив не правильно сделана.
    А вообще есть такая вещь как new (buffer) type, конечно не по теме, но интересная;

    Копировать один массив в другой массив так грубо тоже не стоит. По сути ошибка тут:
    char *strcat_s(char *_string, char _buffer[100]) {
    _string = _buffer;
    return _string;
    }

    А если мы попытаемся присвоить пустую строку - будет ОЧЕНЬ плохо.
    Массив присваивать другому массиву нельзя.
    Не забывай, когда мы пишем массив вот так:
    _string, по сути это тоже самое что писать &_string[0].
    Имя массивая является ссылкой на первый элемент массива.
    Когда как указатель на имя массива ссылается на первый элемент. Проще говоря.
    char ch[10];
    *ch == ch[0];
    ch == &ch[0]
    Сам же адрес массива извлекается так:
    &ch. //Хотя по сути это адрес первого элемента массива.
    Еще мы присваиваем весь буффер к стрингу, а надо лишь до элемента '\0'
    <code lang="cpp">
    char *strcat_s(char *_string, char _buffer[100]) {
    	for (int i = 0; i < 100; i++) {
    		if (_string[i] == '\0')
    			break;
    		_string[i] = _buffer[i];
    	}
    	return _string;
    }
    </code>

    А вообще, если передаешь в функцию переменную, то передавай ее по ссылке &_string, а лучше в класс запихай.

    В char *setString тоже фигня какая та.
    Сишные функции, плюс ошибка на пустую строку. Я так сделал.
    char *setString(char *_string = (char *)malloc(1)) {
    
    	char _buffer[100];
    	int i, _lenght = 0;
    	_string = '\0';
    
    	cout << "Введите строку:\n";
    
    	cin.getline(_buffer, 100);
    	_lenght += strlen(_buffer);
    	_string = (char *)realloc(_string, _lenght + 1);
    	_string = strcat_s(_string, _buffer);
    
    		//На всякий обнуляю буффер, а то малоли.
    	for (int i = 0; i < 100; i++)
    		_buffer[i] = '\0';
    	return _string;
    }


    Ну и вот примерчик, который делал по книге прата, что бы прояснить ТСу, как работают ссылки, указатели и т.п.
    int main() {
    	int * a;
    	int * b;
    	char buffer[1000]; //буффер на 1000 байт
    	a = new (buffer) int;
    	*a = 100;
    	cout << "A = " << *a << endl;
    	cout << "Address A=" << a << endl;
    	b = new (buffer) int;
    	cout << "B = " << *b << endl;
    	cout << "Address B=" << b << endl;
    	*b = 99;
    	cout << "A = " << *a << endl;
    	cout << "B = " << *b << endl << endl;
    	cout << "Address A=" << a << endl;
    	cout << "Address B=" << b << endl << endl;
    	char * ch = new (buffer) char;
    	cout << "init char ch \n";
    	cout << "CH = " << ch << endl;
    	ch = "Hello World I am buffer ";
    	cout << "CH = " << ch << endl;
    	cout << "A = " << *a << endl;
    	cout << "B = " << *b << endl << endl;
    
    	cout << "Address A=" << a << endl;
    	cout << "Address B=" << b << endl;
    	cout << "Address CH=" << &ch << endl << endl;
    
    	cout << "init float f \n";
    	float * f = new (buffer) float;
    	cout << "F = " << *f;
    	*f = 3.14;
    	cout << "F = " << *f << endl;
    	cout << "CH = " << ch << endl;
    	cout << "A = " << int(*a) << endl;
    	cout << "B = " << int(*b) << endl << endl;
    
    	cout << "Address A=" << a << endl;
    	cout << "Address B=" << b << endl;
    	cout << "Address F=" << f << endl;
    	cout << "Address CH=" << &ch << endl << endl;
    
    
    	// Адресация массивово.
    	cout << "*ch		=" << *ch
    		<< "\n ch		=" << ch
    		<< "\n &ch		=" << &ch
    		<< "\n &ch[0]		=" << &ch[0]
    		<< "\n *ch == ch[0]. ch == &ch[0]";
    	system("pause");
    	return 0;
    Ответ написан
    3 комментария
  • Какую версию Windows выбрать для удаленного рабочего стола?

    @FloorZ
    Домен не обязателен, но рекомендуем для Windows Server 2012 и выше. Там просто с этим метро интерфейсом и диспетчером серверов намудрили, что без бутылки у многих начинаются проблемы при настройки его без домена. (Спасибо мелкомягким за столь "великолепный" и "удобный" интерфейс в серверных ОС) Плюс когда настраиваешь RDP, он навязчиво говорит "У вас нету домена, поставьте домен". У самого проблемы были. Но без домена удаленка работает прекрасно. Единственное, управлять удаленными подключениями (отключать их, завершать), придется не через диспетчер удаленных рабочих столов, а через диспетчер задач, в закладки пользователи. Правда я в Win server 2012 не пробовал RemoteApp настраивать.

    А так преимущество RDP в том, что можно пробрасывать буфер обмена, принтера, различные устройства и диск. А так же Easy Print, которые через RDP умеет почти все виды офисных принтеров прокидывать. Ну и шифрование, работа с сертификатами и прочии мелочи.

    Умеет ли VNC это все делать - я не знаю и сказать не могу.
    Ответ написан
    Комментировать
  • Перенос сайта с хостинга на серверный компьютер. Как это сделать?

    @FloorZ
    открываем FTP хостинга или каким то иным образом получаем доступ к папке www, где ваш сайт - копируем его себе на компьютер. Так же копируем базу данных. На своем компьютере уже разворачиваем апачи, кидаем туда наш сайт, копируем нашу BD. все...
    Ответ написан
    Комментировать
  • Существует ли вирус который может убить жесткий диск на физическом уровне?

    @FloorZ
    гепотетически, если вирус изменяет прошивку HDD и не будет парковать головку HDD, то с небольшим шансом между остановкой и стартом блинов головка может поцарапать диск. Но это только теоретически.
    Ответ написан
    4 комментария
  • Выбрать курсы программирования?

    @FloorZ
    Плохо тебе друзья посоветовали.
    Надо не повторять, а реализовывать что-то, для чего нужен язык программирования. Судя по тегам, там ХТМЛ и JS. Могу посоветовать завести простенькую страничку-визитку и начать улучшать ее, используя различные уроки по JS, от Hello world до чего то сложного... Например до полноценного блога. Не надо по урокам... они скучные.
    И не надо видеоуроки смотреть. Процесс обучения по ним медленный слишком.
    Ответ написан
    1 комментарий
  • PROXMOX 3.4 при разбивке диска boot раздел создает в fat32, как сделать в ext3?

    @FloorZ
    А чем загрузчик в fat32 не устроил? если будет использоваться EFI, то там вроде только fat используется.
    Ответ написан
    Комментировать
  • Какое количество IP адресов в подсети?

    @FloorZ
    IP калькулятор говорит:
    \64 - Всего адресов: 18,446,744,073,709,551,616
    \48 - Всего адресов: 1,208,925,819,614,629,174,706,176
    Ответ написан
    Комментировать
  • Как не волноваться на собеседовании?

    @FloorZ
    Что вы теряете? Вот скажите мне, что вы на них теряете?
    Главное говорить правду! Чистую правду!
    Ответ написан
    Комментировать
  • Какая windows подойдет?

    @FloorZ
    Имхо. Лучше ставить сразу 64бит, даже если оперативки меньше 4х гб. На работе это целая проблема. Накупили станций с windows 32бит. Потом через несколько лет начали апгрейдить по оперативной памяти, что бы на все эксели хватало и "современные" браузеры и скайп - так все, жопа. Уперлись в разрядность и все. Покупать новую ОС надо. Все переустанавливать и т.д. и т.п.

    По этому всегда ставить лучше х64.
    Ответ написан
    2 комментария
  • Как устроены большие компании, что в них не может один человек сломать всю систему?

    @FloorZ
    Если вам интересно что именно используют и как делают, то:
    Active Directory (Или LDAP) - смотрите в интернете, что и для чего юзают.
    Vlan - для изоляции пользователей друг от дурга или сегменты сети.

    В итоге. У простых смертных, когда они заходят по выданному им логин и паролю - их пользователь ограничен по правилам GPO. Например они ничего не могут запускать ничего кроме определенных программ. Ну или могут какой то минимум.

    Как то так. Хотя от слива информации что не делай, ничего не поможет.
    Ответ написан
    Комментировать
  • Выбор NAS для видеонаблюдения?

    @FloorZ
    Synology - из коробки все что надо уже есть. Все настраивается без документаций и танцев. Главное что бы скорости дисков хватило.
    Ответ написан
  • Как определить какой используется протокол?

    @FloorZ
    Уточнить вопрос. Нужно определить протокол на каком уровне, физическом, канальном, сетевом или транспортном?
    Мы просто имеем провод, из которого льются данные или все же мы перехватываем IP пакеты с каким то там данными?
    Ответ написан
  • Почему компбютеры 2-3 этажа не видят сервер?

    @FloorZ
    Сети физически соединены?
    Связь между "модемами" - есть?
    Почему первый этаж имеет диапазон 192.168.0.255-192.168.0.255? (Очапятка?)

    Я так понял у вас такая схема:
    1 этаж - 192.168.0.0/24, шлюз 192.168.0.1
    2 этаж - 192.168.200.0/24, шлюз 192.168.200.1
    3 этаж - 192.168.300.0/24, шлюз 192.168.300.1
    Но исходя из описанного вами "Если на компьютере 3...ип и сервер первого или 2 этажа."
    То их свитчи соединены, а на каждом шлюзе включен DHCP. А на шлюзах (модемах/маршрутизаторах) маршрутизация между под сетями не настроена.

    Ответьте на вопрос "Сколько у вас всего компьютеров?". Если не очень много, то есть смысл оставить один "модем" и всем выдать IP одного диапазона. Например 192.168.0.1/24.

    Но с такими вопросами лучше обратитесь к специалисту, пока не наломали ничего.

    UPD 1:

    Если компов много, то я вижу такие варианты:
    Разделить каждую сеть на разные Vlan и каждому Vlan раздавать свой собственный диапазон IP. Для этого нужен хороший маршрутизатор.

    Более бюджетное решение такое:
    Три сети (IP я выбираю для упрощенного подсчета):
    1 этаж - 192.168.100.0/24, шлюз 192.168.100.1
    2 этаж - 192.168.200.0/24, шлюз 192.168.200.1
    3 этаж - 192.168.300.0/24, шлюз 192.168.300.1

    На первом этаже, где сервер, это главная сеть, маршрутизатор ведет в интернет.
    На втором этаже свитчи должны сводиться к маршрутизатору 2.
    На третьем этаже свитчи должны сводиться к маршрутизатору 3.

    На маршрутизаторе 2 и 3 должны быть подняты NAT на один из портов, которые идут к свитчу первого этажа. И на них прописать переадресацию на сервер по порту 1189. Тогда на компьютерах второго и третьего этажа надо подключаться по РДП к 192.168.xxx.1:1189.
    Но тут важно, что бы ваши амршрутизаторы (aDSL модемы) поддерживали всю эту порнографию.

    На соловах тяжеловато объяснить, вообщем упрощенная схема:
    f2f7c4dd967a4afa91beb67d489d486d.jpg
    Ответ написан
    3 комментария
  • Контакт 1С и MySQL?

    @FloorZ
    Мне одному кажется, что куда разумнее будет перейти с файловой 1С на MSSQL и самой простой репликацией, передавать определенные поля таблицы "заказы покупателей". А дальше в гугле "Репликация MSSQL > MySQL".

    Я так понял, они собрались передавать вам полный файл обмена. Сколько у них народа работает в 1С и на сколько большая у них, а так же как много информации туда забиваются у вас не указано. Но тут есть одна проблема. Эти обмены довольно большие (у нас не сжатая xml весит 700метров в среднем), если ИБ используется активно и парсить их достаточно долго и геморойно, особенность если еще и сжимают их. Данные же будут ну раз в сутки передавать, ну два максимум. Так же в них будет еще хренова туча лишней информации.

    От сюда выводы я вижу такие:
    А - продолжать в том же духе и ваш сервер будет довольно долго парсить эти xmlы и информация будет обновляться редко
    Б - вынудить их перейти на MSSQL/PostgreSQL
    В - Что бы их 1С программист написал индивидуальный обмен, который будет выгружать хотя бы в тот же txt/xml заказы покупателей с нужными вам полями.
    Ответ написан
  • Как правильно настроить BGP?

    @FloorZ Автор вопроса
    Хотя отбой. Уже разобрался с протоколом методом проб и ошибок. Я не правильно разобрался в протоколе, точнее в принципе его маршрутизации. Сейчас немного поразмыслил и понял, что не правильно понял принцип БГП.

    Теперь 117 и другие маршрутизаторы спокойно пингуют всю сетку 192.168.0.0/23.
    3aad8326472c4958bda0ca920b790bc4.jpg
    Router#ping 192.168.0.35
    
    Type escape sequence to abort.
    Sending 5, 100-byte ICMP Echos to 192.168.0.35, timeout is 2 seconds:
    !!!!!
    Success rate is 100 percent (5/5), round-trip min/avg/max = 0/0/1 ms


    Вот что показывает sh ip bgp:
    Router(config)#do ip bgp
    ip bgp
       ^
    % Invalid input detected at '^' marker.
    	
    Router(config)#do sh ip bgp
    BGP table version is 71, local router ID is 100.0.0.17
    Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
                  r RIB-failure, S Stale
    Origin codes: i - IGP, e - EGP, ? - incomplete
    
       Network          Next Hop            Metric LocPrf Weight Path
    *> 104.0.0.0/24      117.0.0.2                0     0     0 108 109 104 i
    *  105.0.0.0/24      117.0.0.2                0     0     0 108 109 105 i
    *> 108.0.0.0/24      117.0.0.2                0     0     0 108 i
    *> 109.0.0.0/24      117.0.0.2                0     0     0 108 109 i
    *> 116.0.0.0/24      117.0.0.2                0     0     0 108 109 104 120 116 i
    *  116.1.0.0/24      117.0.0.2                0     0     0 108 109 104 120 116 i
    *> 117.0.0.0/24      0.0.0.0                  0     0 32768 i
    *> 120.0.0.0/24      117.0.0.2                0     0     0 108 109 104 120 i
    *> 192.168.0.0/23    117.0.0.2                0     0     0 108 109 104 120 i


    А вот я "оборвал" один из проводов:
    Router(config)#
    %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/0, changed state to down
    %BGP-5-ADJCHANGE: neighbor 117.0.0.2 Down Interface flap
    %BGP-5-ADJCHANGE: neighbor 116.1.0.1 Up
    %BGP-5-ADJCHANGE: neighbor 105.0.0.1 Up
    Router(config)#do sh ip bgp
    BGP table version is 87, local router ID is 100.0.0.17
    Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
                  r RIB-failure, S Stale
    Origin codes: i - IGP, e - EGP, ? - incomplete
    
       Network          Next Hop            Metric LocPrf Weight Path
    *> 104.0.0.0/24      116.1.0.1                0     0     0 116 120 104 i
    *                    105.0.0.1                0     0     0 105 109 104 i
    *  105.0.0.0/24      116.1.0.1                0     0     0 116 120 104 109 105 i
    *                    105.0.0.1                0     0     0 105 i
    *  108.0.0.0/24      116.1.0.1                0     0     0 116 120 104 109 108 i
    *>                   105.0.0.1                0     0     0 105 109 108 i
    *  109.0.0.0/24      116.1.0.1                0     0     0 116 120 104 109 i
    *>                   105.0.0.1                0     0     0 105 109 i
    *> 116.0.0.0/24      116.1.0.1                0     0     0 116 i
    *                    105.0.0.1                0     0     0 105 109 104 120 116 i
    *  116.1.0.0/24      116.1.0.1                0     0     0 116 i
    *                    105.0.0.1                0     0     0 105 109 104 120 116 i
    *> 117.0.0.0/24      0.0.0.0                  0     0     0 117 i
    *> 120.0.0.0/24      116.1.0.1                0     0     0 116 120 i
    *                    105.0.0.1                0     0     0 105 109 104 120 i
    *> 192.168.0.0/23    116.1.0.1                0     0     0 116 120 i
    *                    105.0.0.1                0     0     0 105 109 104 120 i


    А вот полная конфига 117 (аналогично сделал на всех маршрутизаторах)
    Router(config)#do sh run
    Building configuration...
    
    Current configuration : 1065 bytes
    !
    version 15.1
    no service timestamps log datetime msec
    no service timestamps debug datetime msec
    no service password-encryption
    !
    hostname Router
    !
    !
    !
    !
    !
    !
    ip cef
    no ipv6 cef
    !
    !
    !
    !
    license udi pid CISCO2911/K9 sn FTX152410ZM
    !
    !
    !
    !
    !
    !
    !
    !
    !
    !
    !
    spanning-tree mode pvst
    !
    !
    !
    !
    !
    !
    interface Loopback0
     ip address 100.0.0.17 255.255.255.255
    !
    interface GigabitEthernet0/0
     ip address 117.0.0.1 255.255.255.252
     duplex auto
     speed auto
    !
    interface GigabitEthernet0/1
     ip address 105.0.0.2 255.255.255.252
     duplex auto
     speed auto
    !
    interface GigabitEthernet0/2
     ip address 116.1.0.2 255.255.255.252
     duplex auto
     speed auto
    !
    interface Vlan1
     no ip address
     shutdown
    !
    router bgp 117
     bgp log-neighbor-changes
     no synchronization
     neighbor 117.0.0.2 remote-as 108
     neighbor 105.0.0.1 remote-as 105
     neighbor 116.1.0.1 remote-as 116
     network 100.0.0.0 mask 255.255.254.0
     network 117.0.0.0 mask 255.255.255.0
    !
    ip classless
    ip route 117.0.0.0 255.255.255.0 Null0 
    !
    ip flow-export version 9
    !
    !
    !
    !
    !
    !
    !
    line con 0
    !
    line aux 0
    !
    line vty 0 4
     login
    !
    !
    !
    end
    
    
    Router(config)#


    На BGP 120 стоит такой вот маршрут.
    ip route 192.168.0.0 255.255.254.0 FastEthernet1/0

    Вроде все =)
    Ответ написан
    4 комментария
  • Прокомментируейте схему резервного копирования ИБ. Что можно улучшить?

    @FloorZ
    Имхо, для начала перейти с MSSQL 2005 на более свежие по причине того, что у вас в расчете хранить архивы (я так понял бэки средствами MSSQL в течении нескольких лет?) Проблема может стать такой, что через N лет вы просто не сможете восстановить, вдруг обратная совместимость будет отсутсвовать. По этому хотя бы каждые 5 - 10 лет обновлять MSSQL по указанной выше причине.

    Если опять же, нужно так долго хранить бэки - может стоит перейти на ленточные носители?
    В более свежих версий MSSQL все ваши задачи реализуются штатными средствами в SSMS (SQL Server Management Studio).

    Имея 77 баз 1С на MSSQL и требовать "Бесплатность" решений - это что-то из разряда фантастики. Стоит вашим работодателям объяснить, что "НУЖНО", подчеркну, "НУЖНО" купить новый MSSQL и ленточное хранилище данных, иначе через пару лет будет проблематично, а то и не возможно восстановить данные из за отсутствия обратной совместимости или кривости резервных копий, которые сейчас так понял через убогие костыли реализуются, путем прокидывания через интернет smb сетевого диска, использованием какого то стороннего организатора, с последующим бэкапом на него через 7zip.

    Судя по описанному вами геморою копирования на другую машину бэкапов - проще поднять облако, типо Cloud Sration.

    Просто пример:
    У нас есть SAN на которой крутиться несколько БД 1с и бэкапы MSSQL.
    На другом конце страны у нас есть SAN Synology с развернутым на нем Cloud Station, который синхронизирует бэкапы между устройствами. Самое главное, не страшно что в оффисе пропадет интернет. Как только будет связь - бэкапы синхронизируются. Очень удобно и просто. Всегда есть бэкапы на разных машинах, на разной гео-удаленности и им не нужно стабильное соединение между друг другом, за счет синхронизации облака.
    Ответ написан
  • Как отключить видеокарту во время загрузки файлов из интернета?

    @FloorZ
    отключение и включение - чаще всего в эти моменты дохнет механика.
    Помпа может работать в аптайме 24/7/365/10. НО!!! После выключения - она банально может не завестись.
    Это как с жестким диском... Работает без остановки 10 лет. Выключили его, включили - а он уже завестись не может.
    Так и тут... Основной износ идет на момент вкл/выкл, а не саму работу.
    Ответ написан
    Комментировать