Это быстрый и грязный код C++, который создает окно и зависает.
// freeze.cpp
#include <QtWidgets/QApplication>
#include <QtWidgets/QMainWindow>
#include <QtCore/QMutex>
int main (int argc, char** argv) {
QApplication a (argc, argv);
QMainWindow w;
QMutex m;
w.show ();
m.lock ();
m.lock ();
return (a.exec ());
}
Это зависит от фреймворка Qt5. После установки пакетов разработки Qt5 код может быть скомпилирован с помощью следующей командной строки (это неправильный способ сборки приложения Qt, на самом деле):
$ g++ freeze.cpp -fPIC -std=c++11 -I/usr/include/qt5 -I/usr/include/qt -lQt5Core -lQt5Gui -lQt5Widgets
Когда-то эта функция была очень полезна. В какой-то момент некоторые люди начали злоупотреблять им и начали отключать его в некоторых разновидностях UNIX. Тогда у нас не было sudo, поэтому многие вещи, которые люди могли делать с помощью sudo, выполнялись с помощью файла сценария с установленным битом setuid.