Jonny Karlsson 6.9.2005 PROCESSPROGRAMMERING Föreläsning 2 (6.9.2005) Innehåll: -Fildeskriptorer -Filhantering -Felhantering.

Slides:



Advertisements
Liknande presentationer
Föreläsning 9 Programmeringsteknik och Matlab 2D1312/2D1305
Advertisements

INTRODUKTION TILL PROGRAMMERING
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 1 ( ) Innehåll: -Introduktion av kursen -Program och processer -Fildeskriptorer -Filhantering.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 3 ( ) Innehåll: -Namngivna rörledningar.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 3 ( ) Innehåll: -Namngivna rörledningar -Signaler -Signalhantering.
Funktioner och programorganisation
#include void fun(char s[]) { int i=-1; while(s[++i]!=0) { if('a'
Filhantering Grundprincipen för filhantering Öppna filen
2D1311 Programmeringsteknik med PBL Föreläsning 4 Skolan för Datavetenskap och kommunikation.
Programmeringsteknik för K och Media
Programmeringsteknik för K och Media
Föreläsning 2 Datalogi för E1 2D1343
Föreläsning 5 Python: argument från kommando-tolken
Föreläsning 2 Primitiva datatyper Variabler och konstanter Tilldelning Inläsning Operatorer Villkorssatsen if Slingor: while och for.
Next previous Innehåll Inledning Några enkla exempel Pekare till och kort beskrivning av större exempel Speciella referenser (som används i marginalen)
Strömmar Vid läsning och skrivning används något som kallas strömmar.
Distribuerade filsystem
DAV B04 - Databasteknik Indexering (kap 14).
Föreläsning 5.  Idag  Kap 7 i Dawson  Filer  Felhantering med try…except.
Föreläsning 11 Arrayer.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 6 ( ) INNEHÅLL: -Mera om tabeller.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 7 ( ) Innehåll: -Datakanaler och datakanalpar -Kommunikation på samma dator med datakanaler.
Pekare och speciell programstruktur i inbyggda system
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 4 ( )‏ Innehåll:Trådsäkerhet - Intrinsic locks och synkronisering - Synchronized statements.
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( ) Innehåll: Trådprogrammering i Java - Avbrott (”interrupts”) - Metoden join() -
Deklarera en struct som kan användas för att representera en rät linje Använd den I main för att deklarera en variabel som du initierar så att den representerar.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 4 ( ) Innehåll: -Programmerade rörledningar -Namngivna rörledningar.
OOP Objekt-orienterad programmering
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 4 ( ) INNEHÅLL: -Logiska opertorer -Poster.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser -Att definiera egna klasser -Klassvariabler -Klassmetoder.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 4 ( ) Innehåll: - Förening av dataströmmar - Signaler - Signalhantering.
Modulär programutveckling
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 6 ( ) Innehåll: -Producent – konsument problemet -Förmedling av fildeskriptorer.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 8 ( ) INNEHÅLL:Klasser: -Konstruktorer -Klassvariabler -Instansmetoder -Privata.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 6 ( ) Innehåll: -IPC: Semaforer -Exekveringstrådar (threads) -Introduktion till Java.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Metoder -Lokala variabler -Mera om klasser: -Nyckelorden.
Jonny Karlsson GRUNDKURS I PROGRAMMERING MED JAVA Föreläsning 9 ( ) INNEHÅLL: -Tabeller av klassobjekt -Användning av Java API specifikationen.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 12 ( ) Innehåll: -Datakanaler och datakanalpar -Kommunikation på samma dator med datakanaler.
Föreläsning 14 ”Enkel” Filhantering.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 6: Process- synkronisering.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 11 ( ) Innehåll: - Förmedling av fildeskriptorer.
Föreläsning 10 Stränghantering.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 2 ( ) Innehåll: -Processtruktur -Processklyvning och kodbyte -Avslutning av processer.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 3 ( ) Innehåll: -Processtruktur -Processklyvning och kodbyte -Avslutning av processer.
INTRODUKTION TILL PROGRAMMERING
Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 11 C# I/O Streams C# använder “strömmar” för in- och utmatningsoperationer.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 2 ( ) INNEHÅLL: -Variabler och datatyper -Tilldelning av variabler -Aritmetiska.
Kenneth Wilhelmsson 1 Logikprogrammering 10 P Onsdag 20 november 2002.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 5 ( ) Innehåll: -Signaler -Signalhantering.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Tabeller -Villkorssatser -Repetitionssatser.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 5 ( ) INNEHÅLL: -Metoder.
F4 - Funktioner & parametrar 1 Programmeringsteknik, 4p vt-00 Modularisering ”svarta lådor” Väl definierade arbetsuppgifter Enklare validering Enklare.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 5 ( ) Innehåll: IPC: meddelandeköer IPC: delat minne.
1 Sockets Traditionellt har UNIX varit svag på IPC, InterProcess Communication. I augusti 1983 kom en ny IPC-mekanism i 4.2BSD som var enkel om konsistent.
INTRODUKTION TILL PROGRAMMERING
Anders Sjögren Filer - långtidslagring. Anders Sjögren Filtyper i DOS talet ett ( intx=1; ) lagrat i en –textfil, (en sekvens av tecken ( bytes )) enligt.
ITK:P2 F8 Strömmar och filhantering DSV Peter Mozelius.
Föreläsning 2. Allmänt STL genererar varningar i Visual C++ –”#pragma warning (disable : 4786)”
2D1311 Programmeringsteknik med PBL Föreläsning 4 Skolan för Datavetenskap och kommunikation.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 7 ( ) Innehåll: -IPC: Meddelandeköer.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 9 ( ) Innehåll: - IPC: Semaforer.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 6 ( ) Innehåll: - Förening av dataströmmar -Blockerande I/O multiplexering -Icke blockerande.
F2 1 Programmeringsteknik, 4p vt-00 Kommentarer Allt mellan /* och */ Varje kommentar byts ut mot en blank av kompilatorn /* Exempel på uttryck, tilldelningsoperatorn.
Föreläsning 14 Logik med tillämpningar Innehåll u Cuts och negation u Input/output u Extralogiska predikat u Interaktiva program, failure-drivna.
William Sandqvist Funktionsbibliotek När man utvecklat en funktion så långt att den är "färdigutvecklad" kan man lika gärna spara den på.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( ) Innehåll: -Exekveringstrådar.
Föreläsning 9 Inläsning och utskrift på fil –SimpleTextFileReader –SimpleTextFileWriter Felsökning Java API.
Anders Sjögren Programmering i ANSI-C Ett första program för att se vart vi ska...
TDP004 Objektorienterad Programmering Fö 4 Strömmar.
Presentationens avskrift:

Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 2 ( ) Innehåll: -Fildeskriptorer -Filhantering -Felhantering

Jonny Karlsson Filhantering FILDESKRIPTORER Alla öppna filer refereras till operativsystemets kernel via fildeskriptorer. Fördefinierade fildeskriptorer: 0 – Standard Input (tangentbordet) 1 – Standard Output (bildskärmen) 2 – Standard Error (felmeddelanden som visas på bildskärmen) ATT ÖPPNA OCH STÄNGA EN FIL int open(const char *pathname, int flags, mode_t mode); Ett systemanrop som öppnar en given fil och returnerar en fildeskriptor pathname En char pekare som anger URL till filen som skall öppnas flags Anger olika optioner för filen som öppnas mode Anger filrättigheter för filen som öppnas

Jonny Karlsson Filhantering Flags Endast ett av följande argument får användas: O_RDONLYÖppnar en fil för läsning O_WRONLYÖppnar en fil för skrivning O_RDWRÖppnar en fil för både läsning och skrivning O_APPENDSkriver till slutet på en fil, O_CREATSkapar filen om den inte existerar. Kräver ett tredje argument som anger filrättigheterna för den skapdade filen. O_TRUNCSkriver över innehållet i en fil. O_EXECLSkapar ett felmeddelande tillsammans med O_CREAT ifall filen existerar. O_NONBLOCKÖppnar i ”icke-blockerande läge. O_SYNCTvingar write funktionen att vänta på en fysisk I/O – operation

Jonny Karlsson Filhantering Mode S_IRUSRuser - read S_IWUSRuser – write S_IXUSRuser - ececute S_IRGRPgroup - read S_IWGRPgroup - write S_IXGRPgroup - execute S_IROTHother - read S_IWOTHother - write S_IXOTHother - execute

Jonny Karlsson Filhantering Exempel: int deskr; deskr = open(”testfil.txt”, O_RDWR | O_CREAT | O_APPEND, S_IWRITE | S_IREAD); Öppnar filen testfil.txt för läsning och skrivning. Filen skapas om den inte finns och tilldelas skriv och läsrättigheter. Om filen finns och där redan finns innehåll i filen, sätts nytt inehåll till i slutet av filen (skriver ej över gammalt innehåll). Open funktionen returnerar det lägsta lediga fildeskriptorvärdet. Deskriptorerna 0, 1 och 2 är alltid reserverade för stdin, stdout, och stderr. Dessa förvalda deskriptorer kan omstyras till en fil genom att stänga någon av dessa deskriptorer före utförande av open. En fildeskriptor stängs med : int close(int deskr);

Jonny Karlsson Filhantering LÄS- OCH SKRIVOPERATIONER ssize_t write(int fildeskr, const void *buffer, size_t buffersize); Skriver till filen som fildeskriptorn fildeskr refererar till. Returnerar antalet skrivna bytes eller -1 om fel uppstår. Exempel: deskr = open(.....); scanf(”%s”, buf); write(deskr, buf, strlen(buf)); /*Läser ett meddelande från tangentbordet och skriver in det i den fil deskr referarar till*/

Jonny Karlsson Filhantering ssize_t read(int deskr, void *buffer, size_t max_size); Läser ur filen som fildeskriptorn deskr refererar till. Returnerar antalet lästa bytes eller -1 om fel uppstår. Exempel: char *buffer; deskr = open(.....); read(deskr, buffer, 50); /*Läser innehållet ur filen deskr refererar till och sparar det i buffer*/

Jonny Karlsson Felhantering FUNKTIONSBIBLIOTEK FÖR FELHANTERING errno.h extern int errno; En integer som specificeras av funktioner då fel uppstår för att indikera exakt vad som gått fel. const char *sys_errlist[]; En global lista på felmeddelanden som inexeras av errno void perror(const char *message); En funktion som kan användas för att skriva ut ett felmeddelande till ”standard error” som beskriver det senast felet som uppstått under ett system- eller funktionsanrop. Skriver ut sys_errlist[errno].

Jonny Karlsson Felhantering char *strerror(int errnum); /*deklarerad i string.h*/ Returnerar en teckensträng som beskriver ett angivet felnummer eller ”unknown error message” om felnumret är okänt. Exempel 1: printf(”Felmeddelande nr %d betyder ’%s’, 1, strerror(1)); Ger skärmutskriften: ”Felmeddelande nr 1 betyder ’Operation not permitted’” Exempel 2: errno = 1; perror(”Felmeddelandeförklaring”); Ger skärmutskriften: ”Felmeddelandeförklaring : Operation not permitted”