fork () скопирует процесс, который разветвляется в состоянии, в котором он находится. *
Трудно сказать, в какой строке кода начинается дочерний процесс, вам действительно нужно будет посмотрите на разобранную скомпилированную версию, чтобы понять. Но часто можно предположить, что он начинается после того, как fork был вызван, конечно, в вашем случае.
Он копирует все его переменные, стек, все (на самом деле это пространство в памяти) копируется байт по байт. Единственное, что меняется, это ID процесса **.
Если вы сделаете это:
int i = random_integer();
fork();
Дочерний процесс будет иметь то же значение для i, что и родительский.
*: В дочернем процессе возвращаемое значение fork () будет вместо 0 идентификатором процесса.
**: Кроме того, дочерний процесс не будет иметь родителей Замки и использование ресурсов.
a)
Вы пытались перезапустить X ?. Вы можете сделать это с терминала (с помощью CTRL + ALt + F1) и записи:
/etc/init.d/gdm restart
или
service gdm restart
Если это не сработает, вы можете попробовать выгрузите / загрузите модуль графической карты из ядра, но это может немного сложно, так как обычно есть несколько модулей, зависящих друг от друга. Вы можете начать набирать lsmod в терминале, чтобы узнать, какие модули вы загрузили. Вы можете заставить модули разгружаться с помощью rmmod как root и загружать их снова с помощью modprobe.
b)
Вы просматривали систему и журналы X.org ?. Вы можете проверить их в System-> Administration-> System Logs или в / var / log /. Необходимая информация, вероятно, показана внизу команды dmesg сразу после возникновения проблем.
a)
Вы пытались перезапустить X ?. Вы можете сделать это с терминала (с помощью CTRL + ALt + F1) и записи:
/etc/init.d/gdm restart
или
service gdm restart
Если это не сработает, вы можете попробовать выгрузите / загрузите модуль графической карты из ядра, но это может немного сложно, так как обычно есть несколько модулей, зависящих друг от друга. Вы можете начать набирать lsmod в терминале, чтобы узнать, какие модули вы загрузили. Вы можете заставить модули разгружаться с помощью rmmod как root и загружать их снова с помощью modprobe.
b)
Вы просматривали систему и журналы X.org ?. Вы можете проверить их в System-> Administration-> System Logs или в / var / log /. Необходимая информация, вероятно, показана внизу команды dmesg сразу после возникновения проблем.
a)
Вы пытались перезапустить X ?. Вы можете сделать это с терминала (с помощью CTRL + ALt + F1) и записи:
/etc/init.d/gdm restart
или
service gdm restart
Если это не сработает, вы можете попробовать выгрузите / загрузите модуль графической карты из ядра, но это может немного сложно, так как обычно есть несколько модулей, зависящих друг от друга. Вы можете начать набирать lsmod в терминале, чтобы узнать, какие модули вы загрузили. Вы можете заставить модули разгружаться с помощью rmmod как root и загружать их снова с помощью modprobe.
b)
Вы просматривали систему и журналы X.org ?. Вы можете проверить их в System-> Administration-> System Logs или в / var / log /. Необходимая информация, вероятно, показана внизу команды dmesg сразу после возникновения проблем.
a)
Вы пытались перезапустить X ?. Вы можете сделать это с терминала (с помощью CTRL + ALt + F1) и записи:
/etc/init.d/gdm restart
или
service gdm restart
Если это не сработает, вы можете попробовать выгрузите / загрузите модуль графической карты из ядра, но это может немного сложно, так как обычно есть несколько модулей, зависящих друг от друга. Вы можете начать набирать lsmod в терминале, чтобы узнать, какие модули вы загрузили. Вы можете заставить модули разгружаться с помощью rmmod как root и загружать их снова с помощью modprobe.
b)
Вы просматривали систему и журналы X.org ?. Вы можете проверить их в System-> Administration-> System Logs или в / var / log /. Необходимая информация, вероятно, показана внизу команды dmesg сразу после возникновения проблем.
a)
Вы пытались перезапустить X ?. Вы можете сделать это с терминала (с помощью CTRL + ALt + F1) и записи:
/etc/init.d/gdm restart
или
service gdm restart
Если это не сработает, вы можете попытаться выгрузить / загрузить модуль графической карты из ядра, но это может немного как обычно, есть несколько модулей, зависящих друг от друга. Вы можете начать набирать lsmod в терминале, чтобы узнать, какие модули вы загрузили. Вы можете заставить модули разгружаться с помощью rmmod как root и загружать их снова с помощью modprobe.
b)
Просмотрели ли вы систему и журналы X.org ?. Вы можете проверить их в System-> Administration-> System Logs или в / var / log /. Необходимая информация, вероятно, показана внизу команды dmesg сразу после возникновения проблем.
a)
Вы пытались перезапустить X ?. Вы можете сделать это с терминала (с помощью CTRL + ALt + F1) и записи:
/etc/init.d/gdm restart
или
service gdm restart
Если это не сработает, вы можете попытаться выгрузить / загрузить модуль графической карты из ядра, но это может немного как обычно, есть несколько модулей, зависящих друг от друга. Вы можете начать набирать lsmod в терминале, чтобы узнать, какие модули вы загрузили. Вы можете заставить модули разгружаться с помощью rmmod как root и загружать их снова с помощью modprobe.
b)
Просмотрели ли вы систему и журналы X.org ?. Вы можете проверить их в System-> Administration-> System Logs или в / var / log /. Необходимая информация, вероятно, показана внизу команды dmesg сразу после возникновения проблем.
a)
Вы пытались перезапустить X ?. Вы можете сделать это с терминала (с помощью CTRL + ALt + F1) и записи:
/etc/init.d/gdm restart
или
service gdm restart
Если это не сработает, вы можете попытаться выгрузить / загрузить модуль графической карты из ядра, но это может немного как обычно, есть несколько модулей, зависящих друг от друга. Вы можете начать набирать lsmod в терминале, чтобы узнать, какие модули вы загрузили. Вы можете заставить модули разгружаться с помощью rmmod как root и загружать их снова с помощью modprobe.
b)
Просмотрели ли вы систему и журналы X.org ?. Вы можете проверить их в System-> Administration-> System Logs или в / var / log /. Необходимая информация, вероятно, показана внизу команды dmesg сразу после возникновения проблем.
a)
Вы пытались перезапустить X ?. Вы можете сделать это с терминала (с помощью CTRL + ALt + F1) и записи:
/etc/init.d/gdm restart
или
service gdm restart
Если это не сработает, вы можете попытаться выгрузить / загрузить модуль графической карты из ядра, но это может немного как обычно, есть несколько модулей, зависящих друг от друга. Вы можете начать набирать lsmod в терминале, чтобы узнать, какие модули вы загрузили. Вы можете заставить модули разгружаться с помощью rmmod как root и загружать их снова с помощью modprobe.
b)
Просмотрели ли вы систему и журналы X.org ?. Вы можете проверить их в System-> Administration-> System Logs или в / var / log /. Необходимая информация, вероятно, показана внизу команды dmesg сразу после возникновения проблем.
a)
Вы пытались перезапустить X ?. Вы можете сделать это с терминала (с помощью CTRL + ALt + F1) и записи:
/etc/init.d/gdm restart
или
service gdm restart
Если это не сработает, вы можете попытаться выгрузить / загрузить модуль графической карты из ядра, но это может немного как обычно, есть несколько модулей, зависящих друг от друга. Вы можете начать набирать lsmod в терминале, чтобы узнать, какие модули вы загрузили. Вы можете заставить модули разгружаться с помощью rmmod как root и загружать их снова с помощью modprobe.
b)
Просмотрели ли вы систему и журналы X.org ?. Вы можете проверить их в System-> Administration-> System Logs или в / var / log /. Необходимая информация, вероятно, показана внизу команды dmesg сразу после возникновения проблем.