gitweb on Svarog
projekti pod git sistemom za održavanje verzija -- projects under the git version control system
summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 5a7e8d6)
raw | patch | inline | side by side (parent: 5a7e8d6)
author | Doni Pracner <quinnuendo@gmail.com> | |
Mon, 17 Feb 2014 19:45:07 +0000 (20:45 +0100) | ||
committer | Doni Pracner <quinnuendo@gmail.com> | |
Mon, 17 Feb 2014 19:45:07 +0000 (20:45 +0100) |
Uveden codeblock-indent koji je uvucen kao dosad i koristi se
za male komande koda koji su usput u tekst, dok ostali veci
komadi sada imaju manje margine levo.
za male komande koda koji su usput u tekst, dok ostali veci
komadi sada imaju manje margine levo.
skripta-os2.tex | patch | blob | history |
diff --git a/skripta-os2.tex b/skripta-os2.tex
index 57a5b151641730279501c2405fa86cb9999005ef..1c9a36ad9bf2e24d49816e7e6b0a466f6e29727e 100644 (file)
--- a/skripta-os2.tex
+++ b/skripta-os2.tex
% prebreak=\P,
% postbreak=\ding{229}\space,
language=Modula-2,
- xleftmargin=4em
+ xleftmargin=1em
+}
+
+\lstdefinestyle{codeblock-indent}{
+ style=codeblock,
+ xleftmargin=4em
}
\lstdefinestyle{terminal}{
}
\lstnewenvironment{codeblock}[1][]{\lstset{style=codeblock,#1}}{}
+\lstnewenvironment{codeblock-indent}[1][]{\lstset{style=codeblock-indent,#1}}{}
\lstnewenvironment{terminal}{\lstset{style=terminal}}{}
% ----------------==================--------------------------------------
\label{g-prvi-program}
Tradicionalni prvi program ``Hello World'' bi izgledao ovako:
-\begin{codeblock}
+\begin{codeblock-indent}
MODULE hello;
FROM StrIO IMPORT WriteString, WriteLn;
WriteString('hello world');
WriteLn
END hello.
-\end{codeblock}
+\end{codeblock-indent}
Primećuje se razlika u modulu iz koga se uvoze komande u odnosu na
XDS/TopSpeed verzije M2, tamo je sve bilo u \kod{InOut}, dok se ovde
\end{terminal}
odnosno videćemo da je poziv definisan na sledeći način:
-\begin{codeblock}
+\begin{codeblock-indent}
int system(const char *command);
-\end{codeblock}
+\end{codeblock-indent}
što znači da vraća ceo broj, a prima jedan argument koji je pokazivač
(što se označava *) na znak. Ovo je zapravo ceo string, pošto se u C
jeziku oni predstavljaju kao pokazivač na prvi znak, a string se onda
Korišćenjem sistemske komande \kod{fork} trenutni proces se duplira
(``račva''). Novi proces je identičan sa originalnim, osim u svom
identifikacionom broj. Komanda ne prima parametre i vraća jedan integer, pa se može mapirati na sledeći način:
-\begin{codeblock}
+\begin{codeblock-indent}
PROCEDURE fork(): INTEGER;
-\end{codeblock}
+\end{codeblock-indent}
Oba procesa se nakon račvanja nastavljaju odvijati u sledećem redu
koda. Jedino po čemu se razlikuju je vrednost koju je vratio
procesu je ova vrednost jednaka nuli. Budući da je najčešće potrebno
da dete i roditelj rade različite stvari, to se obično rešava kodom
sledećeg oblika:
-\begin{codeblock}
+\begin{codeblock-indent}
pid := fork();
IF pid = 0 THEN
(* "detetove" operacije *)
ELSE
(* "roditeljske" operacije *)
END;
-\end{codeblock}
+\end{codeblock-indent}
Komanda \kod{wait} (uvezena kao sistemska) se može pozvati u
originalnom procesu sa efektom da se proces uspava dokle god neki od
Prvi korak za instalaciju dodatnog kompajlera GNU Modula 2 je
dodavanje repozitorijuma softvera u sistem. Ovo se može uraditi ručnim
menjanjem fajla \kod{/etc/apt/sources.list} i dodavanjem
-\begin{codeblock}
+\begin{codeblock-indent}
#
# GNU Modula-2 repo
#
deb http://floppsie.comp.glam.ac.uk/debian/ squeeze main
deb-src http://floppsie.comp.glam.ac.uk/debian/ squeeze main
-\end{codeblock}
+\end{codeblock-indent}
Alternativno se mogu koristiti sledeće komande: