c - skrivefunktionen kræver unistd.h på Unix, hvad med windows?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har ændret mig fra en Linux-computer til en Windows, og jeg har problemer med at kompilere min kode, fordi disse to OS ikke deler de samme header-filer.


Da unistd.h ikke er indlysende, kan Visual C ikke vide, hvad funktionerne read(), write(), close(), socklen\_t() og bzero() er. nogen hjælper mig med dette?


Jeg har googled dette: Er der en erstatning for unistd.h til Windows (Visual C)?


Jeg aner ikke hvordan unistd.h virker, og jeg ved heller ikke, hvordan jeg kan kode mig selv. Kan nogen forbinde mig til en?

Bedste reference


Din bedste indsats er at bruge MinGW til at kompilere programmet, hvilket blandt andet omfatter GCC (og dets overskrifter). Prøv at installere det og derefter kompilere dit program og se om alt fungerer OK. [19]

Andre referencer 1


read, write og close er i <io.h>, ligesom de traditionelt var på Unix.


Offhand, jeg ved ikke, at en bzero bliver inkluderet i Windows overhovedet - hvis du slet ikke bekymrer dig om portabilitet, vil du normalt bruge memset i stedet.


socklen\_t er normalt ikke brugt på Windows - de fleste ting der ville være socklen\_t på Unix bruger enten size\_t eller int på Windows (socklen\_t på Unix er i øjeblikket en anden henvisning til den samme underliggende type som size\_t, tilføjet, hvis det kan være nyttigt en dag - altså en løsning på jagt efter et problem).