if (Derived* derived = dynamic_cast<Derived*>(base)) {
// do stuff with `derived`
}
Хотя это часто упоминается как антишаблон («использовать виртуальную рассылку!»), Иногда тип Derived
обладает функциональностью, которой просто не обладает Base
(и, следовательно, отдельными функциями), и это хороший способ включить эту семантическую разницу.
netstat --all --program | grep '3265'
- все
показывают слушающие и не слушающие сокеты.
- программа
показывает PID и имя программы, которой принадлежит сокет. Вы также можете использовать сканер портов, такой как Nmap.
В качестве примечания: netstat -ao будет читать / proc / PID / tcp и т.д., чтобы увидеть порты, открытые процессом. Это означает, что его считывающая информация предоставляется системой (ЯДРО Linux) и никоим образом не смотрит напрямую на сетевой интерфейс или другие средства. То же самое и с lsof.
Если вы делаете это в качестве меры безопасности, вы потерпели неудачу. Вы никогда (НИКОГДА) не должны доверять выводам netstat, даже если вы на 100% уверены, что действительно запускаете настоящую программу netstat (в отличие от троянской версии) или любую другую программу, которая читает файловую систему / proc. Некоторые люди, кажется, думают, что netstat, ls, ps или любые другие стандартные инструменты unix делают какую-то магию и опрашивают информацию из источников, правда в том, что все они полагаются на файловую систему / proc для получения всех своих данных, которые можно легко взломать с помощью руткита или гипервизора.
Вы можете использовать инструмент командной строки netstat с аргументом командной строки -p
:
-p
(Linux):Процесс: Показать, какие процессы какие сокеты используют (аналогично
-b
в Windows). Для этого вы должны быть пользователем root.
В разделе примеров приведен следующий пример:
Отображение всех портов, открытых процессом с идентификатором
$ PID
:netstat -ao | grep '\ b' $ PID '\ b'