Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    15

    [c] chiamata di fork su windows sVista

    che cosa devo chiamare per avere le stesse funzionalita della fork di UNIX???
    devo fare una roba del gener

    pid = fork();

    if (pid == 0)
    funzione(0);
    else
    funzione(200);

    uso eclipse per c come editor e gcc come compilatore. dicono che gcc può emulare la fork però nn so che libreria includere

    grazie in anticipo

  2. #2

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    15
    Originariamente inviato da shodan
    http://msdn2.microsoft.com/en-us/library/ms682425.aspx

    da quello che ho capito CreateProcess gestisce processi, io ho bisogno di richiamare la stessa funzione con due parametri diversi...
    in pratica devo parallelizzare la ricerca di un pattern in una stringa molto lunga e chiamo la funzione, ricerca(k) per esempio, dicendogli di partire una volta dall' offset 0 della stringa e contemporaneamente da 200

  4. #4
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Quella è la fork su windows. Per quello che intendi fare tu ci sono i thread.
    In ogni caso la fork crea un nuovo processo.

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    15
    perchè in linux è tutto molto più facile?...

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da Gjergji
    perchè in linux è tutto molto più facile?...
    I soliti punti di vista ... se non sai come si fa su Windows, questo non vuol dire che sia piu' facile su linux ...

    Usa la CreateThread ... e' semplicissima
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Attenzione che molto probabilmente preferirai usare le _beginthreadex e _endthreadex, da:
    http://msdn2.microsoft.com/en-us/library/ms682453.aspx
    A thread in an executable that calls the C run-time library (CRT) should use the _beginthreadex and _endthreadex functions for thread management rather than CreateThread and ExitThread; this requires the use of the multi-threaded version of the CRT. If a thread created using CreateThread calls the CRT, the CRT may terminate the process in low-memory conditions.

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Corretto ... ma fondamentalmente il discorso e' quello ... con Windows usi, tranquillamente, i Thread ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Originariamente inviato da oregon
    Corretto ... ma fondamentalmente il discorso e' quello ... con Windows usi, tranquillamente, i Thread ...
    Ma anche su Linux... non si è mai sentito che si usa una fork() per far eseguire contemporaneamente più volte la stessa funzione... a questo scopo esiste la pthread_create(). La fork() serve per creare un nuovo processo, diverso da quello del chiamante. E, solitamente, si usa in congiunzione con la exec()...


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da LeleFT
    Ma anche su Linux... non si è mai sentito che si usa una fork() per far eseguire contemporaneamente più volte la stessa funzione... a questo scopo esiste la pthread_create(). La fork() serve per creare un nuovo processo, diverso da quello del chiamante. E, solitamente, si usa in congiunzione con la exec()...
    Corretto anche questo ... come in Windows potrebbe essere usata la CreateProcess per un altro processo ... insomma, la cosa dipende molto strettamente da cio' che si vuole fare e non dal fatto che si voglia "simulare" qualcosa che c'e' in un sistema operativo per un altro sistema ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.