C-programmering i Linux, macOS, BSD och Solaris

Jack-Benny Perss

C-programmering i Linux, macOS, BSD och Solaris

C-programmering i Linux, macOS, BSD och Solaris

Jack-Benny Perss
Pehmeäkantinen
43,95 €
Saatavuus: Lähetetään 10-25 arkipäivässä, tilaustuote. Arvioitu toimituspäivä: 16.8.2021 - 1.9.2021
Toimituskulut alk 0 €

Myymäläsaatavuus

Tuotetiedot

  • Näytä kaikki
    • Kustantaja CyberInfo Sverige
    • ISBN 9789198330021
    • Tuotekoodi 9789198330021
    • Kirjoittajat Jack-Benny Perss
    • Kieli ruotsi
    • Thema-luokitus Tiedonkäsittely- ja tietotekniikka
    • Ilmestymispäivä 05.03.2018
    • Vuosi 2018
    • Painos 1
    • Sivumäärä 430
    • Asiasanat Linux; macOS; FreeBSD; OpenBSD; Solaris; UNIX; programmering; C; LLDB; GDB; Valgrind; make; funktioner; minneshantering; datatyper
    • Pituus (mm) 230
    • Leveys (mm) 170
    • Korkeus (mm) 29
    • Paino (g) 763
    • Sisältö 1 Introduktion
      1.1 UNIX-system?
      1.2 Bokens exempelprogram

      2 Kort historia
      2.1 Högnivåspråken utvecklas
      2.2 Andra UNIX-liknande system

      3 Installera nödvändiga verktyg
      3.1 Navigera i de inbygga man-sidorna

      4 Introduktion till C
      4.1 Ett första exempel
      4.2 Ett exempel med indata
      4.2.1 Första varianten
      4.2.1.1 Spill över med flit
      4.2.2 Andra varianten
      4.3 Övningsuppgifter

      5 Variabler och datatyper i C
      5.1 Variabelnamn
      5.2 Heltal
      5.2.1 Portabilitet
      5.2.2 Signed och unsigned int
      5.2.3 Tecken, char
      5.3 Flyttal
      5.4 Fält av tal
      5.5 Uppräkningstypen, enum
      5.6 Konstruktioner, struct
      5.6.1 Storleken på konstruktioner
      5.7 Egna datatyper med typedef
      5.8 Unioner
      5.9 Konstanter
      5.10 Omvandla mellan olika typer
      5.11 Aritmetik
      5.11.1 Modulo-operatorn
      5.12 Övningsuppgifter

      6 Loopar & villkor
      6.1 Jämförelseoperatorer
      6.2 Olika villkorssatser i C
      6.3 if-satsen
      6.4 Logiska operatorer
      6.5 Nästlade if-satser
      6.6 Jämföra strängar
      6.7 Switch-satsen
      6.8 Loopar
      6.8.1 for-loopen
      6.8.1.1 Utesluta delar i for-loopen
      6.8.2 while-loopen
      6.8.3 do while
      6.8.4 Avbryta en loop med break
      6.8.5 Hoppa över iterationer med continue
      6.9 Övningsuppgifter

      7 Bitvisa operationer
      7.1 Bitvis OCH & bitvis ELLER
      7.1.1 Exklusiv ELLER
      7.2 Bitvis skiftning
      7.3 Negation
      7.4 Övningsuppgifter

      8 Funktioner, del 1
      8.1 En första egen funktion
      8.2 Funktionsprototyp och funktionskropp
      8.3 Returtyper och argument
      8.4 Placera funktioner i separata filer
      8.5 Övningsuppgifter

      9 Minneshantering
      9.1 Heap och stack
      9.1.1 BSS, data och text
      9.1.2 Stack frames
      9.2 Scope
      9.2.1 Block-scope
      9.2.1.1 Global
      9.2.1.2 Static
      9.2.2 Filbaserat scope
      9.3 Dynamisk minneshantering
      9.4 Allting handlar om null-tecknet
      9.5 Övningsuppgifter

      10 Pekare
      10.1 Adressen till teckenfält
      10.2 Skapa pekare
      10.3 Mer om fält, strängar och pekare
      10.3.1 Andra typer av fält
      10.4 Pekare till pekare
      10.4.1 Använda pekare till pekare för fält
      10.5 Övningsuppgifter

      11 Funktioner, del 2
      11.1 main()
      11.1.1 Behandla argument till programmet
      11.1.1.1 Förklaring av resten av simple-ls
      11.2 Fält som argument och retur
      11.2.1 Fält som argument
      11.2.2 Returnera ett fält
      11.2.3 Call by reference
      11.3 Övningsuppgifter

      12 Filhantering
      12.1 Strömmar och fildeskriptorer
      12.2 Skriva till filer med filströmmar
      12.3 Läsa från filer med filströmmar
      12.3.1 Läsa in specifikt innehåll
      12.4 stdin, stdout och stderr
      12.5 Förflytta sig i en fil
      12.6 Skriva och läsa med fildeskriptorer
      12.7 Skriva och läsa binärdata
      12.7.1 Skriva och läsa en enstaka variabel
      12.7.2 Skriva fält till en fil
      12.7.2.1 Blanda olika datatyper
      12.7.3 Lagra strukturer i filer
      12.7.4 Ett komplett lagerhanteringsprogram
      12.8 Övningsuppgifter

      13 Introduktion till systemanrop
      13.1 Filsystem och rättigheter
      13.1.1 Rättigheter som oktala tal
      13.1.2 umask
      13.2 Två exempelprogram
      13.2.1 Enkelt program för filinformation
      13.2.2 Program för att ändra ägaren av en fil
      13.3 Systemanrop, datatyper och C-standarder
      13.4 Felhantering och errno
      13.5 En egen version av touch
      13.6 Många fler systemanrop
      13.7 Övningsuppgifter

      14 Kommunicera med skalet och andra program
      14.1 Rörledningar
      14.2 Returkoder
      14.3 Omdirigera data till & från filer
      14.3.1 Skriva till stderr i C
      14.4 Knyta samman returkoder, rörledningar och omdirigeringar
      14.5 Miljövariabler
      14.5.1 Läsa och sätta miljövariabler i C
      14.6 Övningsuppgifter

      15 Kompilatorn, objektfiler och make
      15.1 De fyra stegen
      15.1.1 Preprocessorn
      15.1.2 Kompilering
      15.1.3 Assembly
      15.1.4 Linker
      15.2 Ett par nyttiga flaggor
      15.3 Make
      15.3.1 En Makefile för ett projekt
      15.3.1.1 En smartare Makefile
      15.3.1.2 Fler variabler och mål
      15.4 Delade bibliotek
      15.4.1 Statiska bibliotek
      15.4.2 Dynamiska bibliotek
      15.4.2.1 Titta i det dynamiska biblioteket
      15.4.2.2 Installera biblioteket i systemet
      15.4.2.3 Använda biblioteket i ett program
      15.4.2.4 macOS
      15.4.2.5 Använda tredjepartsbibliotek
      15.5 Övningsuppgifter

      16 Processer, demoner, barn och föräldrar
      16.1 Introduktion till exec()
      16.2 Introduktion till fork()
      16.2.1 Zombie-processer
      16.3 system()
      16.4 Demoner
      16.5 Övningsuppgifter

      17 IPC
      17.1 Signalhantering
      17.1.1 Utöka demonen med signalhanterare
      17.1.1.1 Utöka med ytterligare signalhanterare
      17.1.1.2 Utöka med ett klientprogram
      17.2 Pipes (rörledningar)
      17.3 FIFO (namngivna rörledningar)
      17.3.1 C och FIFO
      17.4 Meddelandeköer
      17.5 Övningsuppgifter

      18 Felsökning
      18.1 GDB och LLDB
      18.1.1 Installera GDB / LLDB
      18.1.2 Stega igenom ett enkelt program
      18.1.3 Övervaka variabler
      18.1.4 Modifiera variabler under körning
      18.1.5 Program med flera funktioner och argument
      18.1.6 Titta i minnesadresser
      18.1.7 Undersöka minnet på djupet
      18.1.8 Felsöka barnprocesser
      18.1.8.1 GDB
      18.1.8.2 LLDB
      18.1.9 Använda GDB/LLDB för att undersöka hur systemet hanterar minne
      18.2 Valgrind
      18.2.1 Installera Valgrind
      18.2.2 Använda Valgrind
      18.2.3 Mer svårupptäckta minnesproblem
      18.3 Övningsuppgifter

      19 Avslutning

      Appendix A (ASCII-tabell)

      Appendix B (Talsystem)
      Bitar, bytes och det binära talsystemet
      Omvandla mellan binärt och decimalt
      Hexadecimala talsystemet
      Till och från binärt
      Hexadecimalt till decimalt
      Räkna ut större och mer komplicerade tal
      Oktala talsystemet
      Till och från binärt
      Oktalt till decimalt

      Källor
    • Tuotemuoto Pehmeäkantinen kirja

Tuotekuvaus

C-programmering i Linux, macOS, BSD och Solaris lär först ut grunderna i C-programmering så att vi har en stabil grund att stå på. Denna del vänder sig mot de som är nya på C-programmering eller för de som behöver fräscha upp sina C-kunskaper. Därefter börjar vi att programmera alltmer mot UNIX-system med hjälp av bland annat systemanrop. Vi lär oss att skapa och använda demoner, standard input- och output, filrättigheter, FIFO, processhantering, make-filer, meddelandeköer med mera.Vi får också lära oss hur man kopplar samman flera program med hjälp av rörledningar och skalskript. Mot slutet av boken tittar vi på hur man använder felsökningsverktyg som GDB, LLDB och Valgrind.
Grundtanken med boken är att du som läsare bara ska behöva en enda bok för att komma igång att utveckla program och verktyg för UNIX-system. Boken är uppbyggd på devisen att lära genom exempel. I boken finns över 160 exempelprogram, både stora och små. Efter varje kapitel finns dessutom övningsuppgifter, så att du som läsare ska kunna arbeta med boken på egen hand.

Jack-Benny Persson har många års erfarenhet av främst Linux- och FreeBSD-system, men också av programmering och skripting i olika former. Intresset för datorer började redan i början av 90-talet och har sedan dess bara fortsatt. På gymnasiet läste han el & elektronik och har senast studerat till Linux Systemspecialist vid EC-Utbildning. Han har tidigare gett ut boken "Grunderna i programmering". Han är idag ägare av CyberInfo Sverige.

Tämä tuote kuuluu tuoteryhmiin

Myymäläsaatavuus

Tuotetiedot

  • Näytä kaikki
    • Kustantaja CyberInfo Sverige
    • ISBN 9789198330021
    • Tuotekoodi 9789198330021
    • Kirjoittajat Jack-Benny Perss
    • Kieli ruotsi
    • Thema-luokitus Tiedonkäsittely- ja tietotekniikka
    • Ilmestymispäivä 05.03.2018
    • Vuosi 2018
    • Painos 1
    • Sivumäärä 430
    • Asiasanat Linux; macOS; FreeBSD; OpenBSD; Solaris; UNIX; programmering; C; LLDB; GDB; Valgrind; make; funktioner; minneshantering; datatyper
    • Pituus (mm) 230
    • Leveys (mm) 170
    • Korkeus (mm) 29
    • Paino (g) 763
    • Sisältö 1 Introduktion
      1.1 UNIX-system?
      1.2 Bokens exempelprogram

      2 Kort historia
      2.1 Högnivåspråken utvecklas
      2.2 Andra UNIX-liknande system

      3 Installera nödvändiga verktyg
      3.1 Navigera i de inbygga man-sidorna

      4 Introduktion till C
      4.1 Ett första exempel
      4.2 Ett exempel med indata
      4.2.1 Första varianten
      4.2.1.1 Spill över med flit
      4.2.2 Andra varianten
      4.3 Övningsuppgifter

      5 Variabler och datatyper i C
      5.1 Variabelnamn
      5.2 Heltal
      5.2.1 Portabilitet
      5.2.2 Signed och unsigned int
      5.2.3 Tecken, char
      5.3 Flyttal
      5.4 Fält av tal
      5.5 Uppräkningstypen, enum
      5.6 Konstruktioner, struct
      5.6.1 Storleken på konstruktioner
      5.7 Egna datatyper med typedef
      5.8 Unioner
      5.9 Konstanter
      5.10 Omvandla mellan olika typer
      5.11 Aritmetik
      5.11.1 Modulo-operatorn
      5.12 Övningsuppgifter

      6 Loopar & villkor
      6.1 Jämförelseoperatorer
      6.2 Olika villkorssatser i C
      6.3 if-satsen
      6.4 Logiska operatorer
      6.5 Nästlade if-satser
      6.6 Jämföra strängar
      6.7 Switch-satsen
      6.8 Loopar
      6.8.1 for-loopen
      6.8.1.1 Utesluta delar i for-loopen
      6.8.2 while-loopen
      6.8.3 do while
      6.8.4 Avbryta en loop med break
      6.8.5 Hoppa över iterationer med continue
      6.9 Övningsuppgifter

      7 Bitvisa operationer
      7.1 Bitvis OCH & bitvis ELLER
      7.1.1 Exklusiv ELLER
      7.2 Bitvis skiftning
      7.3 Negation
      7.4 Övningsuppgifter

      8 Funktioner, del 1
      8.1 En första egen funktion
      8.2 Funktionsprototyp och funktionskropp
      8.3 Returtyper och argument
      8.4 Placera funktioner i separata filer
      8.5 Övningsuppgifter

      9 Minneshantering
      9.1 Heap och stack
      9.1.1 BSS, data och text
      9.1.2 Stack frames
      9.2 Scope
      9.2.1 Block-scope
      9.2.1.1 Global
      9.2.1.2 Static
      9.2.2 Filbaserat scope
      9.3 Dynamisk minneshantering
      9.4 Allting handlar om null-tecknet
      9.5 Övningsuppgifter

      10 Pekare
      10.1 Adressen till teckenfält
      10.2 Skapa pekare
      10.3 Mer om fält, strängar och pekare
      10.3.1 Andra typer av fält
      10.4 Pekare till pekare
      10.4.1 Använda pekare till pekare för fält
      10.5 Övningsuppgifter

      11 Funktioner, del 2
      11.1 main()
      11.1.1 Behandla argument till programmet
      11.1.1.1 Förklaring av resten av simple-ls
      11.2 Fält som argument och retur
      11.2.1 Fält som argument
      11.2.2 Returnera ett fält
      11.2.3 Call by reference
      11.3 Övningsuppgifter

      12 Filhantering
      12.1 Strömmar och fildeskriptorer
      12.2 Skriva till filer med filströmmar
      12.3 Läsa från filer med filströmmar
      12.3.1 Läsa in specifikt innehåll
      12.4 stdin, stdout och stderr
      12.5 Förflytta sig i en fil
      12.6 Skriva och läsa med fildeskriptorer
      12.7 Skriva och läsa binärdata
      12.7.1 Skriva och läsa en enstaka variabel
      12.7.2 Skriva fält till en fil
      12.7.2.1 Blanda olika datatyper
      12.7.3 Lagra strukturer i filer
      12.7.4 Ett komplett lagerhanteringsprogram
      12.8 Övningsuppgifter

      13 Introduktion till systemanrop
      13.1 Filsystem och rättigheter
      13.1.1 Rättigheter som oktala tal
      13.1.2 umask
      13.2 Två exempelprogram
      13.2.1 Enkelt program för filinformation
      13.2.2 Program för att ändra ägaren av en fil
      13.3 Systemanrop, datatyper och C-standarder
      13.4 Felhantering och errno
      13.5 En egen version av touch
      13.6 Många fler systemanrop
      13.7 Övningsuppgifter

      14 Kommunicera med skalet och andra program
      14.1 Rörledningar
      14.2 Returkoder
      14.3 Omdirigera data till & från filer
      14.3.1 Skriva till stderr i C
      14.4 Knyta samman returkoder, rörledningar och omdirigeringar
      14.5 Miljövariabler
      14.5.1 Läsa och sätta miljövariabler i C
      14.6 Övningsuppgifter

      15 Kompilatorn, objektfiler och make
      15.1 De fyra stegen
      15.1.1 Preprocessorn
      15.1.2 Kompilering
      15.1.3 Assembly
      15.1.4 Linker
      15.2 Ett par nyttiga flaggor
      15.3 Make
      15.3.1 En Makefile för ett projekt
      15.3.1.1 En smartare Makefile
      15.3.1.2 Fler variabler och mål
      15.4 Delade bibliotek
      15.4.1 Statiska bibliotek
      15.4.2 Dynamiska bibliotek
      15.4.2.1 Titta i det dynamiska biblioteket
      15.4.2.2 Installera biblioteket i systemet
      15.4.2.3 Använda biblioteket i ett program
      15.4.2.4 macOS
      15.4.2.5 Använda tredjepartsbibliotek
      15.5 Övningsuppgifter

      16 Processer, demoner, barn och föräldrar
      16.1 Introduktion till exec()
      16.2 Introduktion till fork()
      16.2.1 Zombie-processer
      16.3 system()
      16.4 Demoner
      16.5 Övningsuppgifter

      17 IPC
      17.1 Signalhantering
      17.1.1 Utöka demonen med signalhanterare
      17.1.1.1 Utöka med ytterligare signalhanterare
      17.1.1.2 Utöka med ett klientprogram
      17.2 Pipes (rörledningar)
      17.3 FIFO (namngivna rörledningar)
      17.3.1 C och FIFO
      17.4 Meddelandeköer
      17.5 Övningsuppgifter

      18 Felsökning
      18.1 GDB och LLDB
      18.1.1 Installera GDB / LLDB
      18.1.2 Stega igenom ett enkelt program
      18.1.3 Övervaka variabler
      18.1.4 Modifiera variabler under körning
      18.1.5 Program med flera funktioner och argument
      18.1.6 Titta i minnesadresser
      18.1.7 Undersöka minnet på djupet
      18.1.8 Felsöka barnprocesser
      18.1.8.1 GDB
      18.1.8.2 LLDB
      18.1.9 Använda GDB/LLDB för att undersöka hur systemet hanterar minne
      18.2 Valgrind
      18.2.1 Installera Valgrind
      18.2.2 Använda Valgrind
      18.2.3 Mer svårupptäckta minnesproblem
      18.3 Övningsuppgifter

      19 Avslutning

      Appendix A (ASCII-tabell)

      Appendix B (Talsystem)
      Bitar, bytes och det binära talsystemet
      Omvandla mellan binärt och decimalt
      Hexadecimala talsystemet
      Till och från binärt
      Hexadecimalt till decimalt
      Räkna ut större och mer komplicerade tal
      Oktala talsystemet
      Till och från binärt
      Oktalt till decimalt

      Källor
    • Tuotemuoto Pehmeäkantinen kirja

Tuotekuvaus

C-programmering i Linux, macOS, BSD och Solaris lär först ut grunderna i C-programmering så att vi har en stabil grund att stå på. Denna del vänder sig mot de som är nya på C-programmering eller för de som behöver fräscha upp sina C-kunskaper. Därefter börjar vi att programmera alltmer mot UNIX-system med hjälp av bland annat systemanrop. Vi lär oss att skapa och använda demoner, standard input- och output, filrättigheter, FIFO, processhantering, make-filer, meddelandeköer med mera.Vi får också lära oss hur man kopplar samman flera program med hjälp av rörledningar och skalskript. Mot slutet av boken tittar vi på hur man använder felsökningsverktyg som GDB, LLDB och Valgrind.
Grundtanken med boken är att du som läsare bara ska behöva en enda bok för att komma igång att utveckla program och verktyg för UNIX-system. Boken är uppbyggd på devisen att lära genom exempel. I boken finns över 160 exempelprogram, både stora och små. Efter varje kapitel finns dessutom övningsuppgifter, så att du som läsare ska kunna arbeta med boken på egen hand.

Jack-Benny Persson har många års erfarenhet av främst Linux- och FreeBSD-system, men också av programmering och skripting i olika former. Intresset för datorer började redan i början av 90-talet och har sedan dess bara fortsatt. På gymnasiet läste han el & elektronik och har senast studerat till Linux Systemspecialist vid EC-Utbildning. Han har tidigare gett ut boken "Grunderna i programmering". Han är idag ägare av CyberInfo Sverige.

Tämä tuote kuuluu tuoteryhmiin

Yhteydenottolomake Oma Suomalainen -tili

Tähdellä merkityt kentät ovat pakollisia.

Hyväksyn, että tietoni tallennetaan viestintää varten. Lue lisää tietosuojaselosteesta.