Hallo, en welkom terug.
In deze lezing wil ik het hebben over enkele van de hulpprogrammafuncties die
worden geleverd door de c standaardbibliotheek.
En deze doen precies wat je zou denken aan
slechts enkele hulpprogramma's, enkele generieke algemene functies verschillende dingen te doen.
Om de hulpprogramma's te gebruiken, ze staan meestal in de standaard lib. H.
Dus je neemt dat header-bestand op.
Enkele van de functies die ik ga om alleen nuttige functies te beschrijven.
Een daarvan is de absolute waarde abs.
Geeft het absolute terug waarde van een argument.
Absolute waarde is omzetten in een positief.
Dus als je negatief slaagt of zo verder, het zal u
de positieve waarde teruggeven.
Er is een functie genaamd exit.
Ik heb dit een beetje gebruikt in onze hoofdfunctie.
Er is een geheel getal voor nodig, meestal a retourwaarde en meestal
betekent een negatief getal dat er een fout is opgetreden een positief getal of nul betekent geen
fout of één betekent geen fout.
Dit wordt beëindigd het programma wel.
Het springt er gewoon uit.
Als je een hoofdfunctie hebt, u een retour doet, kunt
u vanuit de hoofdfunctie terugkeren.
Maar exit is meestal om het programma te sluiten.
Er zijn ook enkele constanten gedefinieerd zoals exit succes en
exit failure die u kunt gebruiken als je wilt geen cijfers gebruiken.
Andere gerelateerde routines in de bibliotheek waarnaar u misschien
wilt verwijzen, zijn belangrijk bij het afsluiten.
En je zult dit in een behoorlijke tijd zien bit c programma, vooral afbreken.
Afbreken is wanneer er wat is soort fout, zoals als je malloc niet kunt,
je mag afbreken, en je kunt het instellen om te signaleren.
Het goede met afbreken is dat het een kernbestand
zal genereren, afhankelijk van het signaal.
Kernbestand kan worden geholpen om debuggen voor meer informatie.
Maar exit abort en aexit zeer handige functies, die meestal worden aangeroepen als er een
fatale fout optreedt.
Er is een get-omgeving functie waarmee u omgevingsvariabelen
kunt lezen.
Omgevingsvariabelen zijn meestal gekoppeld aan uw omgeving.
Ze zijn een variabele die jij
kan gebruiken is een soort globale variabele die je kunt gebruiken overal op het besturingssysteem.
Dus als het Linux is, heb je een omgevingsvariabele voor uw pad.
Er zijn omgevingsvariabelen in vensters om paden op te geven of waar
verschillende programma's zich bevinden of alleen generieke globale variabelen.
U kunt een omgevingsvariabele instellen en dan kun je het lezen
met deze functie get environment.
En daarin staat omgevingsvariabele en u kunt deze in uw
programma gebruiken.
Dus nogmaals, dingen als pad van alles die gerelateerd zijn aan je shell
of gerelateerd zijn aan je omgeving.
Get-omgeving is erg handig.
Er is een qsort-functie.
Dit zal de gegevensarray sorteren waarnaar wordt verwezen door de lege pointer-array.
Dus er is een array die is genomen als een eerste parameter en
het gaat het sorteren.
Er zullen n elementen in de array, elke maat bijt in de lengte.
En de n en de maat zijn van lettergrootte t.
Er zijn dus vier variabelen die naar deze functie gaan.
Maar de qsort is leuk omdat je kunt een array sorteren.
Het vierde argument is a verwijzing naar de functie die u voor
het sorteren wilt gebruiken.
Het kan dus ingewikkelder worden.
Maar deze functie is erg handig wanneer u twee elementen in
een array moet vergelijken.
U kunt de wijzers doorgeven aan de elementen waarmee
u wilt vergelijken.
We hebben een willekeurige functie.
We gebruiken dit in een van onze uitdagingen rand.
Dit genereert een willekeurig getal.
Je kunt een zaadje specificeren als je wilt in een
andere functie of het genereert gewoon een willekeurig getal tussen a minimumwaarde van 3276,
en minimumwaarde nul willekeurig, maximumwaarde 3276.
Rand max is dus gedefinieerd in standaard lib. H.
Dit gebruik je vaak bij de sran functie, die een zaad levert.
Een zaadje kan een bepaald bereik bieden.
Het zal de cijfers maken misschien ook meer willekeurig.
Dus het zaait het willekeurige nummer generator naar een niet-ondertekende int.
Systeem is een functie die u kunt aanroepen om systeemaanroepen uit te voeren.
Ik gebruikte het in de klas om een pauze in te lassen.
Maar alles wat je kunt uitvoeren vanaf de console, zoals het wijzigen van
mappen, het wijzigen van machtigingen als je bezig bent Linux, het uitvoeren van andere programma's, u kunt
dit allemaal via het systeem doen.
En dus zal dit eigenlijk voer een commando uit in je shell, of het
nu de do-prompt is of je gebruikt een shell op Linux.
Het zal dat commando uitvoeren.
Dus je zou bijvoorbeeld kunnen zeggen: system make dir en het zal een map maken
van wat je hebt opgegeven in het argument om dir.
Het is allemaal binnen dubbel aanhalingstekens, dus er is een string voor nodig.
Systeem is ook heel erg handig.
De assert-bibliotheek is handig om te debuggen.
We kregen geen kans om te praten veel over beweren, maar ik
wilde het toch even noemen.
Het is een bibliotheek die in het bezit is. H en het is er een om te helpen bij het debuggen.
Dus beweren is zeggen dat iets waar is.
Dus je kunt assert binnen zetten uw code om er zeker van te zijn dat iets
waar is voor u ga naar de volgende regel code.
Er is een assertmacro die je gaat gebruiken en er is een argument
voor nodig, zoals een innerlijke uitdrukking.
Als de uitdrukking evalueert tot false, de assert-macro schrijft een foutmelding
naar de standaardfout stream en roept de abort-functie aan.
Dus uw programmeur beëindigt.
Zodat je iets kunt plaatsen in uw code die
in feite zoiets zegt.
Je kunt zeggen dat z gelijk is aan x maal x min x maal y.
En dan kun je beweren dat z groter is dan of gelijk is aan nul.
Als dat false retourneert, is uw programma gaat afsluiten.
Anders wordt het uitgevoerd de volgende regel code.
Dus het is alsof je waar maakt aannames in uw code.
Wil je er zeker van zijn dat bepaalde waarden zijn wat ze zijn
voordat u doorgaat naar de volgende.
Dit zorgt er in wezen voor dat je bent niet zoals delen door nul
daar had je geen nulwaarde toen je deze vermenigvuldiging deed.
Je zult vaak binnen zien beweren van c-programma's voor debuggen.
Andere handige header-bestanden die: misschien wilt u kijken naar: tijd. H.
Tijd. h heeft allerlei verschillende functies en macro's voor het ondersteunen
van verschillende datums en tijden.
Meestal wordt een tijd t struct geretourneerd.
Maar je kunt de datum krijgen.
Je kunt de tijd krijgen.
Errno. h of foutnummer. H.
Dit definieert macro's voor melden van fouten.
Vaak gebruikt, nogmaals, voor betere debugging en rapportage van
specifieke fouten.
Dus veel functies die je hebt gebruiken in standaardbibliotheken.
Als ze niet slagen, kunnen ze een nummer teruggeven voor een specifieke fout, en het is belangrijker wanneer je
een socket gebruikt functies andere dingen omdat er veel
verschillende fouten kunnen zijn.
Soms is het handig om te weten wat er
aan de hand is, in tegenstelling tot alleen maar zeggen dat er een fout is, is dat niet erg handig
om te zeggen dat een specifiek type fout erg nuttig is.
U kunt dus foutnummers krijgen gebruik dit met om te helpen
met verder debuggen.
Lokaal. H.
Er zijn een heleboel functies en macro's
in deze kop voor het opmaken van verschillende valuta's en monetaire eenheden.
Signaal. H.
Dit is handig voor meestal voor programmabeëindiging die verschillende
signalen genereert.
Signalen is geen onderwerp dat we behandelen in veel detail, maar
dit kan handig zijn als u het opgeven van afbreken aanroept specifieke signalen terwijl het programma is gecrasht
of het programma is beëindigd.
En je kunt deze gebruiken als je signalen begrijpt, kunt u ze ook
in uw kernbestand gebruiken.
standaard H.
Dit definieert verschillende faciliteiten die: zorgen ervoor dat een variabel aantal
argumenten kan worden doorgegeven aan een functie, varargs.
We gebruiken vargs en printf, maar dat deden we niet maak onze eigen functies van arg.
Het is een meer geavanceerd onderwerp.
Maar dit zijn standaard header-bestanden die u misschien handig vindt om tijden,
foutnummers, enzovoort op te halen.
Dit zijn goede gebruiksfuncties.
Dus ik hoop dat dit nuttig was.
Dank u.