Web - Amazon

We provide Linux to the World


We support WINRAR [What is this] - [Download .exe file(s) for Windows]

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Audiobooks by Valerio Di Stefano: Single Download - Complete Download [TAR] [WIM] [ZIP] [RAR] - Alphabetical Download  [TAR] [WIM] [ZIP] [RAR] - Download Instructions

Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
Fork - Wikipedia, wolna encyklopedia

Fork

Z Wikipedii

Ten artykuł dotyczy programowania. Zobacz też: inne znaczenia tej nazwy.

Fork (z angielskiego, dosłownie rozwidlenie) to sytuacja w której rozwój projektu nie prowadzi już jedną drogą, ale rozwidla się na dwie lub więcej gałęzi.

Jedna grupa forków dotyczy projektów których zasięg stał się z praktycznego punktu widzenia za duży. Np. na potrzeby projektu GIMP powstał cały widget toolkit, który został wyforkowany do GTK+. GTK+ ulegało potem dalszym forkom, odłączyły się od niego m.in. GLib i Pango.

Inną grupą są specjalne wersje projektu, rozwijane jednak we współpracy z "główną gałęzią", np. wersje Apache czy jądra Linuksa używane w różnych dystrybucjach, czy też CinePaint (dawniej Film Gimp) który odłączył się od GIMP-a.

Trzecią grupę stanowią sytuacje kiedy wskutek konfliktów co do właściwego kierunku rozwoju projektu powstaje kilka różnych gałęzi. Zwykle jedna z gałęzi powstałych po rozpadzie szybko ginie, np. EGCS odłączyło się od GCC, po czym stało się jedyną oficjalną wersją. Czasem różne gałęzie istnieją obok siebie przez bardzo długi czas, pozostając ze sobą w różnych stosunkach. Tak jak np. XEmacs i GNU Emacs, czy różne wersje systemu BSD - FreeBSD, OpenBSD, NetBSD itd.

[edytuj] Fork w programowaniu

Funkcja fork() i fork1() jest funkcją w systemie operacyjnym Unix (i nie tylko) powodującą, że pojedynczemu programowi, któremu do jego wykonania przypisany jest pojedynczy proces w systemie operacyjnym, przypisuje się dwa procesy poprzez rozwidlenie: rodzic i dziecko - czyli tworzy nowy proces. Proces dziecko jest dokładną kopią rodzica.

Aby kontrolować, w którym procesie co wykonujemy (czy rodzic czy dziecko) testuje się wartość zwracaną przez funkcję fork() lub fork1():

  • -1 dla rodzica, kiedy nie powiedzie się stworzenie nowego procesu
  • 0 dla dziecka
  • id_procesu (czyli jakaś liczba naturalna) dla rodzica, który się rozwidlił

i uzależnia wykonywanie działań. Fragment przykładowego kodu w C:

 
switch(fork())
{
  case -1:
    //jesteśmy w rodzicu, ale niepowodzenie
 
  case 0:
    //jesteśmy w dziecku
 
  default:
    //jesteśmy w rodzicu
}

Our "Network":

Project Gutenberg
https://gutenberg.classicistranieri.com

Encyclopaedia Britannica 1911
https://encyclopaediabritannica.classicistranieri.com

Librivox Audiobooks
https://librivox.classicistranieri.com

Linux Distributions
https://old.classicistranieri.com

Magnatune (MP3 Music)
https://magnatune.classicistranieri.com

Static Wikipedia (June 2008)
https://wikipedia.classicistranieri.com

Static Wikipedia (March 2008)
https://wikipedia2007.classicistranieri.com/mar2008/

Static Wikipedia (2007)
https://wikipedia2007.classicistranieri.com

Static Wikipedia (2006)
https://wikipedia2006.classicistranieri.com

Liber Liber
https://liberliber.classicistranieri.com

ZIM Files for Kiwix
https://zim.classicistranieri.com


Other Websites:

Bach - Goldberg Variations
https://www.goldbergvariations.org

Lazarillo de Tormes
https://www.lazarillodetormes.org

Madame Bovary
https://www.madamebovary.org

Il Fu Mattia Pascal
https://www.mattiapascal.it

The Voice in the Desert
https://www.thevoiceinthedesert.org

Confessione d'un amore fascista
https://www.amorefascista.it

Malinverno
https://www.malinverno.org

Debito formativo
https://www.debitoformativo.it

Adina Spire
https://www.adinaspire.com