Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    13

    multitasking in linguaggio c

    Ciao a tutti vengo subito al dunque:

    Sto programmando sotto sistema operativo win98 in linguaggio c e mi serve utilizzare le
    proprietà multitasking del sist. operativo stesso, ho trovato qualche funzione che fa al
    caso mio nella libreria process.h (es. la famiglia delle spawn) ma si presentano due
    grossi problemi:

    1. Non sono in grado di lanciare un processo in parallelo al principale (diciamo al main)
    e di "ucciderlo" da fuori, cioè fare in modo che termini dicendoglielo dal main,
    in pratica il padre non è in grado di uccidere i figli.
    Esistono funzioni in grado di fare ciò? oppure l'unica soluzione è manipolare gli
    interrupt? In tal caso ho visto che c'è bisogno della libreria dos.h che però nel compilatore
    visual c++ 6 che uso io praticamente non esiste, come potrei aggiungerla eventualmente?

    2. Ho estremo di bisogno di condividere informazioni fra i processi che procedono in
    parallelo, ma non so come creare per loro una zona dati comune, dove tutti vadano a
    leggere e scrivere variabili, infatti quando lancio un processo esso vede solo i suoi dati
    diciamo locali

    Grazie mille anticipate

    Teo

  2. #2
    Membro Junior L'avatar di xam85it
    Registrato dal
    Nov 2003
    Messaggi
    64
    :adhone:
    prova con
    prova creando una dll, è una libreria dinamica, se cerchi materiale vai su:
    http://linux.itis.pr.it/%7Eaollari/materiali.htm ciao!!

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    4
    il thread te lo crei con

    __imp__CreateThread@24 da kernel32.dll

    e gli passi:
    1) indirizzo di security_attribute in struttura
    2) dword che indica dimensione della sua stack
    3) dword che indica il suo indirizzo di partenza
    4) dword che è l'indirizzo al parametro che passi
    5) dword che ha i flasg di creazione (solo CREATE_SUSPENDED)
    6) indirizzo dword sul quale verra' copiato il thread-id

    il quale ti restituisce 1 handle
    con quale puoi uccidere il thread....

    __imp__TerminateThread@8 da kernel32.dll

    gli passi:
    1) dword che indica l'handle
    2) dowrd che indica il codice d'uscita

    che restituisce 0x1, se tutto è andato bene...

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    4
    per quanto riguarda
    il punto 2... hai varie possibilita'

    o usi un "PIPE" (anonimo x compatibilita)
    oppure usi un file mappato in memoria
    oppure ricorri ad un mail-slot o al limite
    crei una dll comune e nella sezione dati o
    quella che vuoi metti che la sezione la fai SHARED.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.