Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [C] standard e portabilita'

    mi scuso se l'argomento e' gia' stato (sicuramente) trattato ma con la ricerca ko...

    saro' breve: mi sto leggendo una guida sulla programmazione in linux, si parla di standard posix e ansi c... non mi e' chiaro un concetto: un programma in formato sorgente scritto in linux di cosa ha bisogno per essere compilato anche su nt? quest'ultimo a quale standard fa riferimento?
    Sotto la panza la mazza avanza.

  2. #2
    "non mi e' chiaro un concetto: un programma in formato sorgente scritto in linux di cosa ha bisogno per essere compilato anche su nt? "

    se e' una semplice applicazione console non dovresti avere problemi.
    attenzione pero' che alcune funzioni sono comuni ( una semplice printf() e' uguale nei 2 so) mentre altre no ( per win NON hai le fork() c'e' un topic simile prova a guardare nel giorno di ieri).

    e anche per i dati ci sono alcune differenze, su win hai anche il BYTE se vuoi la stessa cosa in c su linux usi unsigned char, solo per farti un esempio.

    se ti interessa l' indipendenza tra i 2 sistemi prova a guardare qui :
    http://forum.html.it/forum/showthrea...hreadid=741094

  3. #3
    La portabilità c'e' fintanto che tu non vada ad utilizzare librerie architettura-dipendenti.

    Come detto nel post precedente (per fare un esempio) se scrivi del software che deve interagire pesantemente con il SO (oppure programmi che interagiscono con la rete), questo sicureamente non sara portabile, perche' creare processi sotto win e sicuramente diverso che crearli sotto linux, la gestione dei processi e diversa, perche ovviamente hanno scedulatori diversi, questo sicuramente incide su come devi scrivere un applicazione.

    Ovvio pero' se conosci C sai che puoi comunque scrivere codice portabile facedondo pesantemente uso delle regole del preprocessore, in modo da andare a sostituire codice dove e necessario, e lasciarlo invariato altrove.

    bye bye

  4. #4
    ok un po' mi sono chiarito le idee... a proposito delle librerie dipendenti dall'architettura: su linux esistono le glibc, e su nt? sorry per le domande da niubbo ma... lo sono
    Sotto la panza la mazza avanza.

  5. #5
    Utente di HTML.it L'avatar di /dev/null
    Registrato dal
    May 2004
    Messaggi
    1,936
    Il codice che si scrivi che si basa unicamente sulle librerie definite nello standard ANSI saranno sempre portabili su qualunque sistema operativo che abbia un compilatore C
    Cio' che non usa librerie dello standard ansi, ma si rifa' a system calls o a librerie che usano system calls funzionera' molto difficilmente su sistemi diversi, e sara' necessario un port del programma...
    Lo standard POSIX (Portable Operative System Interface of uniX) e' presente su TUTTI gli Unix, come dice il nome stesso... Che standard usi invece win$ non lo so e non so nemmeno se ha uno standard

    Se devi fare programmi multipiattaforma e non hai voglia di portarlo su ogni sistema operativo potresti usare delle librerie di alto livello, gia' portate su piu' os e che ti offrono proprie chiamate funzionanti ovunque... Un esempio sono le GTK...



    Per quanto riguarda l'ultima domanda... Non ho capito

    Le GLibC non dipendono da Linux e Linux non dipende da esse: esistono molte altre librerie, alcune piu' leggere, altre chiuse, altre piu' performanti...
    Comunque praticamente tutte le distribuzioni GNU\Linux si basano sulle GLibC in quanto OpenSources e facenti parte del progetto GNU



    Ultima modifica ad opera dell'utente /dev/null il 01-01-0001 alle 00:00

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.