<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ca">
	<id>http://wiki.joanillo.org/index.php?action=history&amp;feed=atom&amp;title=Sessi%C3%B3_6_curs_programaci%C3%B3_linux</id>
	<title>Sessió 6 curs programació linux - Historial de revisió</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.joanillo.org/index.php?action=history&amp;feed=atom&amp;title=Sessi%C3%B3_6_curs_programaci%C3%B3_linux"/>
	<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Sessi%C3%B3_6_curs_programaci%C3%B3_linux&amp;action=history"/>
	<updated>2026-10-13T05:00:27Z</updated>
	<subtitle>Historial de revisió per a aquesta pàgina del wiki</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=Sessi%C3%B3_6_curs_programaci%C3%B3_linux&amp;diff=498&amp;oldid=prev</id>
		<title>Joan: New page: Programació dimonis  ====================  Continuació sessió 5    ProgramacioDimonisLinux.pdf    cd /etc/  ls rc  són els nivells dels dimonis:    rc0: nivell 0, màquina apagada  rc1...</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Sessi%C3%B3_6_curs_programaci%C3%B3_linux&amp;diff=498&amp;oldid=prev"/>
		<updated>2008-11-09T01:01:29Z</updated>

		<summary type="html">&lt;p&gt;New page: Programació dimonis  ====================  Continuació sessió 5    ProgramacioDimonisLinux.pdf    cd /etc/  ls rc  són els nivells dels dimonis:    rc0: nivell 0, màquina apagada  rc1...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Pàgina nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Programació dimonis&lt;br /&gt;
&lt;br /&gt;
====================&lt;br /&gt;
&lt;br /&gt;
Continuació sessió 5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ProgramacioDimonisLinux.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
cd /etc/&lt;br /&gt;
&lt;br /&gt;
ls rc&lt;br /&gt;
&lt;br /&gt;
són els nivells dels dimonis:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
rc0: nivell 0, màquina apagada&lt;br /&gt;
&lt;br /&gt;
rc1: nivell 1, sistema monousuari&lt;br /&gt;
&lt;br /&gt;
rc2: debian sempre es queda en aquest nivell&lt;br /&gt;
&lt;br /&gt;
en altres sistemes: nivell 5 (executar entorn gràfic), nivell 6 (reboot)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ls -l rc0.d/ -&amp;gt; veiem que estan en color blau (són enllaços).&lt;br /&gt;
&lt;br /&gt;
amb aquesta comanda apareixen els enllaços, on es veu la crida al fitxer en la carpeta init.d&lt;br /&gt;
&lt;br /&gt;
s (start)&lt;br /&gt;
&lt;br /&gt;
k (stop)&lt;br /&gt;
&lt;br /&gt;
el número després de la s o la k indica l'ordre d'execució, com s'executen els serveis en l'inici de la màquina.&lt;br /&gt;
&lt;br /&gt;
Són scripts en bash. La plantilla de com s'ha de fer un fitxer d'aquests és un skeleton (no cal reinventar, ja està fet i s'ha d'adaptar)&lt;br /&gt;
&lt;br /&gt;
/etc/init.d/skeleton&lt;br /&gt;
&lt;br /&gt;
L'objectiu és que el servidor d'echo de la setmana passada crearem els init.d, i l'empaquetarem, i així veiem tot el procés amb un servidor senzill (servidor echo)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
. /lib/init/xxx.sh -&amp;gt; és un include d'un fitxer en bash&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
syslog (registre del sistema)&lt;br /&gt;
&lt;br /&gt;
és un servei que centralitza els missatges de log&lt;br /&gt;
&lt;br /&gt;
normalment agafa els missatges de la pròpia xarxa, però es pot configurar com a client/servidor i agafar els missatges de log de tota la xarxa.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
hi ha una sèrie de nivells, i nivells llindar (nivell de debug, depuració, error,...)&lt;br /&gt;
&lt;br /&gt;
el nivell llindar es configura en el syslog.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
com es fa a nivell de programació?&lt;br /&gt;
&lt;br /&gt;
/usr/include/syslog.h&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
visualitzador de registres de log. L'eina es diu gnome-system-log (executar-la)&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; té unes utiltiats gràfiques (surt en negreta els logs nous), però també es pot obrir directament el fitxer&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$tail -f /var/log/syslog -&amp;gt; mostra la última línia del fitxer de forma continuada&lt;br /&gt;
&lt;br /&gt;
hi ha un paràmetre per indicar quantes línies es mostren. Per defecte, 10?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
al cap i a la fi, l'objectiu és deixar rastre en el log del funcionament del nostre servidor d'echos.&lt;br /&gt;
&lt;br /&gt;
A partir del skeleton, el modifiquem pensant en la nostra aplicació (tenir molt present els paths)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
sudo cat /etc/default/rcS -&amp;gt; controlar coses que es fan quan s'inicia la màquina&lt;br /&gt;
&lt;br /&gt;
per ex, TMPTIME=0 diu que cada vegada que s'inicia la màquina s'esborra el contingut de la carpeta /tmp&lt;br /&gt;
&lt;br /&gt;
Podem posar el valor de 60 per dir que ho esborri cada 2 mesos.&lt;br /&gt;
&lt;br /&gt;
VERBOSE=no ho podem canviar a yes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Falta empaquetar l'aplicació&lt;br /&gt;
&lt;br /&gt;
============================================================&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sessió 6. Programació en C. 2a part&lt;br /&gt;
&lt;br /&gt;
===================================&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ls -la /dev/tty* -&amp;gt; són els dispositius de terminal que tenim (tty ve de teletipus, dels ppis de UNIX)&lt;br /&gt;
&lt;br /&gt;
avui en dia hem substituït la impressora per una pantalla, però continuem tenint la mateixa arquitectura&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ctrl-ALT-F1 -&amp;gt; anem al terminal 1 (tty1)&lt;br /&gt;
&lt;br /&gt;
en iniciar la màquina tenim 6 terminals, i el terminal 7 és la pantalla gràfica (provar-ho)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ctrl-ALT-Supr mata una terminal gràfica&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
pseudo-terminals: són terminals software. Són les terminals de Linux amb què treballem habitualment.&lt;br /&gt;
&lt;br /&gt;
Ctrl-Maj-T-&amp;gt; una nova terminal, que en la nostra consola és una nova pestanya.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$lsof -&amp;gt; ens ensenya tots els fitxers oberts en aquest moment (llarg)&lt;br /&gt;
&lt;br /&gt;
(ls open files). Filtrem la sortida:&lt;br /&gt;
&lt;br /&gt;
ls | grep pts (pseudo-terminals)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
consoles virutals: Ctrl-ALT-Fx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
getty (get tty): obtenir una terminal&lt;br /&gt;
&lt;br /&gt;
finger: mostra informacio d'usuaris i terminals&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$tty -&amp;gt; /dev/pts/1 (estic en una pseudo-terminal)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$ write user (tty) missatge -&amp;gt; per enviar un missatge a un usuari&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
en la wiki del curs: http://acacha.dyndns.org/mediawiki/index.php/Exemples_de_Shell_Scripts&lt;br /&gt;
&lt;br /&gt;
(buscar per scripts)&lt;br /&gt;
&lt;br /&gt;
és una mediawiki (com la wikipedia), que significa que podem cercar per paraules&lt;br /&gt;
&lt;br /&gt;
instal.lar-la a l'institut!!&lt;br /&gt;
&lt;br /&gt;
la pàgina de mediawiki.org està fet amb la pròpia mediawiki&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Exemple Noecho. No mostrar una Contrasenya -&amp;gt; programació en C a baix nivell de la terminal (per no fer echo en el password, o bé canviar el caràcter de pwd)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
cd /sessio6/terminals/noecho&lt;br /&gt;
&lt;br /&gt;
per descarregar-se els fitxers de la sessió 6 ho fem des del Eclipse, amb el CVS, tal com es va fer la setmana passada.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
banner -&amp;gt; aplicació per imprimir títols amb caràcters grossos&lt;br /&gt;
&lt;br /&gt;
$apt-get install banner (potser ja està instal.lat)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
llibreria ncurses -&amp;gt; escriure aplicacions amb interfícies basades en text. Serveix per exemple per fer instal.ladors amb menús, botons, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
amb php es poden fer aplicacions que no siguin web.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
sudo apt-get install libncurses5 libncurses5-dev&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
s'instal.len dos paquets&lt;br /&gt;
&lt;br /&gt;
libncurses5 -&amp;gt; per treballar directament amb l'aplicació&lt;br /&gt;
&lt;br /&gt;
libncurses5-dev -&amp;gt; per desenvolupadors&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
gcc -o holamon -lncurses holamon.c (linka amb ncurses)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;ncurses.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
&lt;br /&gt;
initscr(); -&amp;gt; inicia la finestra. Ara podria ficar colors a la finestra, etc.&lt;br /&gt;
&lt;br /&gt;
printw(&amp;quot;Hola Mon!!!&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
refresh();&lt;br /&gt;
&lt;br /&gt;
getch();&lt;br /&gt;
&lt;br /&gt;
endwin();&lt;br /&gt;
&lt;br /&gt;
return 0;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
següent exemple: finestra amb colors&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;ncurses.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        initscr();&lt;br /&gt;
&lt;br /&gt;
	if (has_colors()) {&lt;br /&gt;
&lt;br /&gt;
        	start_color();&lt;br /&gt;
&lt;br /&gt;
	        init_pair(1,COLOR_BLUE,COLOR_YELLOW);&lt;br /&gt;
&lt;br /&gt;
	        attron(COLOR_PAIR(1));&lt;br /&gt;
&lt;br /&gt;
	        printw(&amp;quot;Hola Mon!!!&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
	        attroff(COLOR_PAIR(1));&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        refresh();&lt;br /&gt;
&lt;br /&gt;
        getch();&lt;br /&gt;
&lt;br /&gt;
        endwin();&lt;br /&gt;
&lt;br /&gt;
        return 0;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
per exemple, en el CVS hi ha unes torres de hanoi fetes amb ncurses.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
en el CVS, en ncurses_programs, hi ha el fitxer makefile que dóna instruccions de com s'ha de compilar.&lt;br /&gt;
&lt;br /&gt;
Aleshores executem make, i llegint el fitxer makefile, compila els fonts de cadascuna de les carpetes, i dóna les istruccions finals (per exemple, diu que vagis a /demo/exe)&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
</feed>