<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://so.v2.cs.unibo.it/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mikidonza</id>
	<title>Sistemi Operativi - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://so.v2.cs.unibo.it/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mikidonza"/>
	<link rel="alternate" type="text/html" href="https://so.v2.cs.unibo.it/wiki/index.php/Special:Contributions/Mikidonza"/>
	<updated>2026-05-03T07:53:49Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.5</generator>
	<entry>
		<id>https://so.v2.cs.unibo.it/wiki/index.php?title=Esercizio_3_prova_pratica_29_maggio_2014&amp;diff=1034</id>
		<title>Esercizio 3 prova pratica 29 maggio 2014</title>
		<link rel="alternate" type="text/html" href="https://so.v2.cs.unibo.it/wiki/index.php?title=Esercizio_3_prova_pratica_29_maggio_2014&amp;diff=1034"/>
		<updated>2015-04-16T09:01:22Z</updated>

		<summary type="html">&lt;p&gt;Mikidonza: Created page with &amp;quot;== Soluzionde di ababa == Il comando che dovrete implementare come script shell o programma python e' statlen. Data una directory statlen fa una statistica sulla lunghezza dei...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Soluzionde di ababa ==&lt;br /&gt;
Il comando che dovrete implementare come script shell o programma python e' statlen.&lt;br /&gt;
Data una directory statlen fa una statistica sulla lunghezza dei nomi dei file presenti in tutto il sottoalbero con radice nella&lt;br /&gt;
directory passata come parametro.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
cd $1&lt;br /&gt;
files=`find -L`&lt;br /&gt;
declare -a stat&lt;br /&gt;
for file in $files; do&lt;br /&gt;
	file=`basename $file`&lt;br /&gt;
	len=`expr length &amp;quot;$file&amp;quot;`&lt;br /&gt;
	((stat[$len]++))&lt;br /&gt;
done&lt;br /&gt;
for i in ${!stat[@]}; do&lt;br /&gt;
	echo &amp;quot;${i} : ${stat[$i]}&amp;quot;&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mi piacerebbe sapere perché se lo lancio come eseguibile funziona senza problemi se lo lancio con il comando &amp;quot;sh statlen.sh .&amp;quot; invece mi da un sacco di errori.&lt;/div&gt;</summary>
		<author><name>Mikidonza</name></author>
	</entry>
	<entry>
		<id>https://so.v2.cs.unibo.it/wiki/index.php?title=Main_Page&amp;diff=1033</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://so.v2.cs.unibo.it/wiki/index.php?title=Main_Page&amp;diff=1033"/>
		<updated>2015-04-16T08:56:46Z</updated>

		<summary type="html">&lt;p&gt;Mikidonza: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Questo &amp;amp;egrave; il Wiki del Corso di Sistemi Operativi&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 3 prova pratica 29 maggio 2014]]&lt;br /&gt;
&lt;br /&gt;
[[Differenza tra due sottoalberi del file system (Prova pratica 22-07-2011)]]&lt;br /&gt;
&lt;br /&gt;
[[Ampiezza di tutti i file di una directory divisi per suffisso (Prova pratica 29-05-2013)]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 1 Prova Pratica 12-09-11]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 1 Prova Pratica 25-01-2013]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 3 Prova Pratica 22-06-2011]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 3, prova pratica, 18-07-2013]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 3, prova pratica, 17-07-2014]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 1, prova pratica, 23-01-2014]]&lt;br /&gt;
&lt;br /&gt;
[[Prova pratica Esercizio 3 esami 17_07_12 - 17_06_14 - 19_07_10]]&lt;br /&gt;
&lt;br /&gt;
[[Prova pratica 23_01_14]]&lt;br /&gt;
&lt;br /&gt;
[[Albero binario 2002-07-23]]&lt;br /&gt;
&lt;br /&gt;
[[50 Sfumature di Fibonacci]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 1 Prova Pratica 20/06/12]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 3 Prova Pratica 17/06/14]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 3, prova pratica 13/09/2013]]&lt;br /&gt;
&lt;br /&gt;
[[Prova pratica 17 07 14]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 1, prova pratica 20.01.2015]]&lt;br /&gt;
&lt;br /&gt;
[[bash scripting 2002 gennaio]]&lt;br /&gt;
&lt;br /&gt;
[[Process Race (Prova pratica 18-07-2013)]]&lt;br /&gt;
&lt;br /&gt;
[[Arduino web controller]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 1, prova pratica 29.05.2013]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 1, prova pratica 29.05.2014]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 1, prova pratica 20.06.2013]]&lt;br /&gt;
&lt;br /&gt;
[[Prova_pratica_21_01_15]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 1, prova pratica 17.06.2014]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 1 - 25.09.2014]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 1, prova pratica 20/02/2014]]&lt;br /&gt;
&lt;br /&gt;
[[Demone ruba input]]&lt;br /&gt;
&lt;br /&gt;
[[wifi daemon]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 1, prova pratica 13/09/2013]]&lt;br /&gt;
&lt;br /&gt;
[[Problema Dei Filosofi]]&lt;br /&gt;
&lt;br /&gt;
[http://www.cs.unibo.it/~renzo/so/portability.tgz portability.tgz]&lt;br /&gt;
&lt;br /&gt;
[[listx.h commentato + esempio su container_of]]&lt;br /&gt;
&lt;br /&gt;
[[Congettura di Goldbach]]&lt;br /&gt;
&lt;br /&gt;
[[list segments]]&lt;br /&gt;
&lt;br /&gt;
[[Execv/fork su file aperto]]&lt;br /&gt;
&lt;br /&gt;
[[Angry_Children]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 1, prova pratica 12/02/2009]]&lt;br /&gt;
&lt;br /&gt;
[[(Programma C) Un quadrato nella matrice]]&lt;br /&gt;
&lt;br /&gt;
[[&amp;quot;classi&amp;quot;_in_C]]&lt;br /&gt;
&lt;br /&gt;
[[Esempi del 02 dicembre 2014]]&lt;br /&gt;
&lt;br /&gt;
[[Materiale dell'AA 2013-14]]&lt;br /&gt;
----&lt;br /&gt;
Ricordate che per creare un account o quando viene richiesto di risolvere un semplice calcolo occorre ricordare quanto scritto [[qui]]&lt;/div&gt;</summary>
		<author><name>Mikidonza</name></author>
	</entry>
	<entry>
		<id>https://so.v2.cs.unibo.it/wiki/index.php?title=Prova_pratica_23_01_14&amp;diff=1027</id>
		<title>Prova pratica 23 01 14</title>
		<link rel="alternate" type="text/html" href="https://so.v2.cs.unibo.it/wiki/index.php?title=Prova_pratica_23_01_14&amp;diff=1027"/>
		<updated>2015-04-14T12:21:10Z</updated>

		<summary type="html">&lt;p&gt;Mikidonza: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Soluzione di ababa ==&lt;br /&gt;
Scrivere un programma in C “linean” che prenda come parametro il pathname di un file e un numero intero (che chiameremo&lt;br /&gt;
n). Il programma deve stampare come output il numero di caratteri presenti nella n-ma riga del file se il file e' un file regolare&lt;br /&gt;
di testo, non deve stampare nulla negli altri casi. Un file viene considerato di testo se tutti i suoi byte hanno valori compresi nel&lt;br /&gt;
range 1-127. Per controllare se il file e' “regolare” usare la system call lstat.&lt;br /&gt;
&lt;br /&gt;
Parte comune.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/types.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/stat.h&amp;gt;&lt;br /&gt;
#include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;error.h&amp;gt;&lt;br /&gt;
#include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char *argv[]){&lt;br /&gt;
	int nriga=atoi(argv[2]);&lt;br /&gt;
	/*controllo che siano stati passati 3 parametri alla funzione (la funzione stessa, il path, e l'intero*/&lt;br /&gt;
	if(argc==3){&lt;br /&gt;
           fprintf(stderr, &amp;quot;numero argomenti sbagliati \n&amp;quot;);&lt;br /&gt;
         exit(1);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        /*controllo di aver aperto il file (e di conseguenza che il secondo parametro sia il path di un file)*/	&lt;br /&gt;
        char *path;&lt;br /&gt;
	path=argv[1];&lt;br /&gt;
	FILE *fd;&lt;br /&gt;
	fd=fopen(path,&amp;quot;r&amp;quot;);&lt;br /&gt;
	if (fd==NULL){&lt;br /&gt;
	   fprintf(stderr, &amp;quot;file non aperto correttamente\n&amp;quot;);&lt;br /&gt;
	   exit(2);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/*controllo che il file sia regolare*/&lt;br /&gt;
	struct stat buf;&lt;br /&gt;
	lstat(path,&amp;amp;buf);&lt;br /&gt;
	if (!(S_ISREG(buf.st_mode))){&lt;br /&gt;
	    fprintf(stderr, &amp;quot;file non regolare\n&amp;quot;);&lt;br /&gt;
	    exit(3);&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/source&amp;gt;	&lt;br /&gt;
Primo modo&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
 /*inizio a scorrere il file finche non mi posiziono sulla riga giusta*/&lt;br /&gt;
	int contrighe=0, contchar=0, c,cha=(int)'\n';&lt;br /&gt;
	&lt;br /&gt;
        while (((c=getc(fd))!=EOF)&amp;amp;&amp;amp;(contrighe&amp;lt;=nriga)) { &lt;br /&gt;
		&lt;br /&gt;
                if (c==cha){&lt;br /&gt;
                    contrighe++;&lt;br /&gt;
		}&lt;br /&gt;
	&lt;br /&gt;
		if ((contrighe==nriga)&amp;amp;&amp;amp;(cha!=c)){&lt;br /&gt;
		    contchar++;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
	contchar--;&lt;br /&gt;
        printf(&amp;quot;il numero di caratteri nella riga sono:%d&amp;quot;,contchar);&lt;br /&gt;
        fclose(fd);&lt;br /&gt;
 	return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Secondo modo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
/*inizio a scorrere il file finché non mi posiziono sulla riga giusta*/&lt;br /&gt;
	char *line=NULL;&lt;br /&gt;
	int i, contchar;&lt;br /&gt;
	size_t boh=0;&lt;br /&gt;
	for (i=0;i&amp;lt;nriga;i++){&lt;br /&gt;
		getline(&amp;amp;line,&amp;amp;boh,fd);&lt;br /&gt;
		free(line);&lt;br /&gt;
		line=NULL;&lt;br /&gt;
	}&lt;br /&gt;
	getline(&amp;amp;line,&amp;amp;boh,fd);&lt;br /&gt;
	contchar=strlen(line)-1;&lt;br /&gt;
	printf(&amp;quot;il numero di caratteri nella riga sono: %d\n&amp;quot;,contchar);&lt;br /&gt;
        fclose(fd);&lt;br /&gt;
 	return 0;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mikidonza</name></author>
	</entry>
	<entry>
		<id>https://so.v2.cs.unibo.it/wiki/index.php?title=Esercizio_1_Prova_Pratica_25-01-2013&amp;diff=1023</id>
		<title>Esercizio 1 Prova Pratica 25-01-2013</title>
		<link rel="alternate" type="text/html" href="https://so.v2.cs.unibo.it/wiki/index.php?title=Esercizio_1_Prova_Pratica_25-01-2013&amp;diff=1023"/>
		<updated>2015-04-14T09:13:59Z</updated>

		<summary type="html">&lt;p&gt;Mikidonza: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Soluzione di ababa ==&lt;br /&gt;
Scrivere  un  programma  listexe  che fornisca  in  output  l'elenco   dei  processi  attivi  nel  sistema  mettendo  in  output  per ogni&lt;br /&gt;
processo il pid e il path dell'eseguibile.&lt;br /&gt;
L'informazione puo' essere trovata scandendo la directory proc, infatti ad ogni processo attivo corrisponde una directory in&lt;br /&gt;
/proc che ha come nome il numero del processo (ad esempio al processo 9801 corrisponde la directory /proc/9801) e all'interno&lt;br /&gt;
di queste directory il file exe e' un link simbolico all'eseguibile.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/types.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/stat.h&amp;gt;&lt;br /&gt;
#include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;error.h&amp;gt;&lt;br /&gt;
#include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
#include &amp;lt;dirent.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main(void){&lt;br /&gt;
&lt;br /&gt;
	int pid,max_size=10000;&lt;br /&gt;
	char *path, *dove=malloc(max_size);&lt;br /&gt;
	path=&amp;quot;/proc&amp;quot;;&lt;br /&gt;
	size_t size=max_size;&lt;br /&gt;
	struct dirent **namelist;&lt;br /&gt;
        int n;&lt;br /&gt;
	int c=0;&lt;br /&gt;
        n = scandir(path, &amp;amp;namelist, 0, alphasort);&lt;br /&gt;
    if (n &amp;lt; 0){&lt;br /&gt;
        perror(&amp;quot;scandir&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    else{&lt;br /&gt;
        while(n--){&lt;br /&gt;
&lt;br /&gt;
        	DIR *cartella;&lt;br /&gt;
        	path=malloc(1000);&lt;br /&gt;
        	path[0]='\0';&lt;br /&gt;
			strcat(path,&amp;quot;/proc/&amp;quot;);&lt;br /&gt;
       		strcat(path,namelist[n]-&amp;gt;d_name);&lt;br /&gt;
       		//printf(&amp;quot;%s\n&amp;quot;,path);&lt;br /&gt;
       		cartella=opendir(path);&lt;br /&gt;
       		&lt;br /&gt;
       		if (cartella != NULL){&lt;br /&gt;
       			strcat(path,&amp;quot;/exe&amp;quot;);&lt;br /&gt;
       			readlink(path,dove,size);&lt;br /&gt;
       			pid=atoi(namelist[n]-&amp;gt;d_name);&lt;br /&gt;
       			if (pid!=0){&lt;br /&gt;
       				printf(&amp;quot;%s ha pid: %d il path %s\n&amp;quot;,namelist[n]-&amp;gt;d_name,pid,dove);&lt;br /&gt;
       			}&lt;br /&gt;
       		}&lt;br /&gt;
       		&lt;br /&gt;
       		free(path);&lt;br /&gt;
        }  	&lt;br /&gt;
        printf(&amp;quot;%d&amp;quot;,c);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mikidonza</name></author>
	</entry>
	<entry>
		<id>https://so.v2.cs.unibo.it/wiki/index.php?title=Esercizio_1_Prova_Pratica_25-01-2013&amp;diff=1022</id>
		<title>Esercizio 1 Prova Pratica 25-01-2013</title>
		<link rel="alternate" type="text/html" href="https://so.v2.cs.unibo.it/wiki/index.php?title=Esercizio_1_Prova_Pratica_25-01-2013&amp;diff=1022"/>
		<updated>2015-04-14T08:34:56Z</updated>

		<summary type="html">&lt;p&gt;Mikidonza: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Soluzione di ababa ==&lt;br /&gt;
Scrivere  un  programma  listexe  che fornisca  in  output  l'elenco   dei  processi  attivi  nel  sistema  mettendo  in  output  per ogni&lt;br /&gt;
processo il pid e il path dell'eseguibile.&lt;br /&gt;
L'informazione puo' essere trovata scandendo la directory proc, infatti ad ogni processo attivo corrisponde una directory in&lt;br /&gt;
/proc che ha come nome il numero del processo (ad esempio al processo 9801 corrisponde la directory /proc/9801) e all'interno&lt;br /&gt;
di queste directory il file exe e' un link simbolico all'eseguibile.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;sys/types.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/stat.h&amp;gt;&lt;br /&gt;
#include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;error.h&amp;gt;&lt;br /&gt;
#include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
#include &amp;lt;dirent.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main(void){&lt;br /&gt;
   int pid;&lt;br /&gt;
   char *path;&lt;br /&gt;
   path=&amp;quot;/proc&amp;quot;;&lt;br /&gt;
   struct dirent **namelist;&lt;br /&gt;
   int n;&lt;br /&gt;
   int c=0;&lt;br /&gt;
   n = scandir(path, &amp;amp;namelist, 0, alphasort);&lt;br /&gt;
    if (n &amp;lt; 0){&lt;br /&gt;
        perror(&amp;quot;scandir&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    else{&lt;br /&gt;
        while(n--){&lt;br /&gt;
&lt;br /&gt;
        	DIR *cartella;&lt;br /&gt;
        	path=malloc(1000);&lt;br /&gt;
        	path[0]='\0';&lt;br /&gt;
			strcat(path,&amp;quot;/proc/&amp;quot;);&lt;br /&gt;
       		strcat(path,namelist[n]-&amp;gt;d_name);&lt;br /&gt;
       		//printf(&amp;quot;%s\n&amp;quot;,path);&lt;br /&gt;
       		cartella=opendir(path);&lt;br /&gt;
       		&lt;br /&gt;
       		if (cartella != NULL){&lt;br /&gt;
       			pid=atoi(namelist[n]-&amp;gt;d_name);&lt;br /&gt;
       			if (pid!=0){&lt;br /&gt;
       				printf(&amp;quot;%s ha pid: %d il path %s\n&amp;quot;,namelist[n]-&amp;gt;d_name,pid,path);&lt;br /&gt;
       			}&lt;br /&gt;
       		}&lt;br /&gt;
       		&lt;br /&gt;
       	free(path);&lt;br /&gt;
        }  	&lt;br /&gt;
        printf(&amp;quot;%d&amp;quot;,c);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mikidonza</name></author>
	</entry>
	<entry>
		<id>https://so.v2.cs.unibo.it/wiki/index.php?title=Esercizio_1_Prova_Pratica_25-01-2013&amp;diff=1021</id>
		<title>Esercizio 1 Prova Pratica 25-01-2013</title>
		<link rel="alternate" type="text/html" href="https://so.v2.cs.unibo.it/wiki/index.php?title=Esercizio_1_Prova_Pratica_25-01-2013&amp;diff=1021"/>
		<updated>2015-04-14T08:33:45Z</updated>

		<summary type="html">&lt;p&gt;Mikidonza: Created page with &amp;quot; == Soluzione di ababa == Scrivere  un  programma  listexe  che fornisca  in  output  l'elenco   dei  processi  attivi  nel  sistema  mettendo  in  output  per ogni processo i...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Soluzione di ababa ==&lt;br /&gt;
Scrivere  un  programma  listexe  che fornisca  in  output  l'elenco   dei  processi  attivi  nel  sistema  mettendo  in  output  per ogni&lt;br /&gt;
processo il pid e il path dell'eseguibile.&lt;br /&gt;
L'informazione puo' essere trovata scandendo la directory proc, infatti ad ogni processo attivo corrisponde una directory in&lt;br /&gt;
/proc che ha come nome il numero del processo (ad esempio al processo 9801 corrisponde la directory /proc/9801) e all'interno&lt;br /&gt;
di queste directory il file exe e' un link simbolico all'eseguibile.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;sys/types.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/stat.h&amp;gt;&lt;br /&gt;
#include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;error.h&amp;gt;&lt;br /&gt;
#include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
#include &amp;lt;dirent.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main(void){&lt;br /&gt;
	int pid;&lt;br /&gt;
	char *path;&lt;br /&gt;
	path=&amp;quot;/proc&amp;quot;;&lt;br /&gt;
struct dirent **namelist;&lt;br /&gt;
    int n;&lt;br /&gt;
int c=0;&lt;br /&gt;
    n = scandir(path, &amp;amp;namelist, 0, alphasort);&lt;br /&gt;
    if (n &amp;lt; 0){&lt;br /&gt;
        perror(&amp;quot;scandir&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    else{&lt;br /&gt;
        while(n--){&lt;br /&gt;
&lt;br /&gt;
        	DIR *cartella;&lt;br /&gt;
        	path=malloc(1000);&lt;br /&gt;
        	path[0]='\0';&lt;br /&gt;
			strcat(path,&amp;quot;/proc/&amp;quot;);&lt;br /&gt;
       		strcat(path,namelist[n]-&amp;gt;d_name);&lt;br /&gt;
       		//printf(&amp;quot;%s\n&amp;quot;,path);&lt;br /&gt;
       		cartella=opendir(path);&lt;br /&gt;
       		&lt;br /&gt;
       		if (cartella != NULL){&lt;br /&gt;
       			pid=atoi(namelist[n]-&amp;gt;d_name);&lt;br /&gt;
       			if (pid!=0){&lt;br /&gt;
       				printf(&amp;quot;%s ha pid: %d il path %s\n&amp;quot;,namelist[n]-&amp;gt;d_name,pid,path);&lt;br /&gt;
       			}&lt;br /&gt;
       		}&lt;br /&gt;
       		&lt;br /&gt;
       	free(path);&lt;br /&gt;
        }  	&lt;br /&gt;
        printf(&amp;quot;%d&amp;quot;,c);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mikidonza</name></author>
	</entry>
	<entry>
		<id>https://so.v2.cs.unibo.it/wiki/index.php?title=Main_Page&amp;diff=1020</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://so.v2.cs.unibo.it/wiki/index.php?title=Main_Page&amp;diff=1020"/>
		<updated>2015-04-14T08:31:13Z</updated>

		<summary type="html">&lt;p&gt;Mikidonza: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Questo &amp;amp;egrave; il Wiki del Corso di Sistemi Operativi&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 1 Prova Pratica 25-01-2013]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 3 Prova Pratica 22-06-2011]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 3, prova pratica, 18-07-2013]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 3, prova pratica, 17-07-2014]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 1, prova pratica, 23-01-2014]]&lt;br /&gt;
&lt;br /&gt;
[[Prova pratica Esercizio 3 esami 17_07_12 - 17_06_14 - 19_07_10]]&lt;br /&gt;
&lt;br /&gt;
[[Prova pratica 23_01_14]]&lt;br /&gt;
&lt;br /&gt;
[[Ampiezza di tutti i file di una directory divisi per suffisso (Prova pratica 29-05-2013)]]&lt;br /&gt;
&lt;br /&gt;
[[Albero binario 2002-07-23]]&lt;br /&gt;
&lt;br /&gt;
[[50 Sfumature di Fibonacci]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 1 Prova Pratica 20/06/12]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 3 Prova Pratica 17/06/14]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 3, prova pratica 13/09/2013]]&lt;br /&gt;
&lt;br /&gt;
[[Prova pratica 17 07 14]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 1, prova pratica 20.01.2015]]&lt;br /&gt;
&lt;br /&gt;
[[bash scripting 2002 gennaio]]&lt;br /&gt;
&lt;br /&gt;
[[Process Race (Prova pratica 18-07-2013)]]&lt;br /&gt;
&lt;br /&gt;
[[Arduino web controller]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 1, prova pratica 29.05.2013]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 1, prova pratica 29.05.2014]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 1, prova pratica 20.06.2013]]&lt;br /&gt;
&lt;br /&gt;
[[Prova_pratica_21_01_15]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 1, prova pratica 17.06.2014]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 1 - 25.09.2014]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 1, prova pratica 20/02/2014]]&lt;br /&gt;
&lt;br /&gt;
[[Demone ruba input]]&lt;br /&gt;
&lt;br /&gt;
[[wifi daemon]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 1, prova pratica 13/09/2013]]&lt;br /&gt;
&lt;br /&gt;
[[Problema Dei Filosofi]]&lt;br /&gt;
&lt;br /&gt;
[http://www.cs.unibo.it/~renzo/so/portability.tgz portability.tgz]&lt;br /&gt;
&lt;br /&gt;
[[listx.h commentato + esempio su container_of]]&lt;br /&gt;
&lt;br /&gt;
[[Congettura di Goldbach]]&lt;br /&gt;
&lt;br /&gt;
[[list segments]]&lt;br /&gt;
&lt;br /&gt;
[[Execv/fork su file aperto]]&lt;br /&gt;
&lt;br /&gt;
[[Angry_Children]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 1, prova pratica 12/02/2009]]&lt;br /&gt;
&lt;br /&gt;
[[(Programma C) Un quadrato nella matrice]]&lt;br /&gt;
&lt;br /&gt;
[[&amp;quot;classi&amp;quot;_in_C]]&lt;br /&gt;
&lt;br /&gt;
[[Esempi del 02 dicembre 2014]]&lt;br /&gt;
&lt;br /&gt;
[[Materiale dell'AA 2013-14]]&lt;br /&gt;
----&lt;br /&gt;
Ricordate che per creare un account o quando viene richiesto di risolvere un semplice calcolo occorre ricordare quanto scritto [[qui]]&lt;/div&gt;</summary>
		<author><name>Mikidonza</name></author>
	</entry>
	<entry>
		<id>https://so.v2.cs.unibo.it/wiki/index.php?title=Prova_pratica_23_01_14&amp;diff=986</id>
		<title>Prova pratica 23 01 14</title>
		<link rel="alternate" type="text/html" href="https://so.v2.cs.unibo.it/wiki/index.php?title=Prova_pratica_23_01_14&amp;diff=986"/>
		<updated>2015-04-10T12:00:31Z</updated>

		<summary type="html">&lt;p&gt;Mikidonza: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Soluzione di ababa ==&lt;br /&gt;
Scrivere un programma in C “linean” che prenda come parametro il pathname di un file e un numero intero (che chiameremo&lt;br /&gt;
n). Il programma deve stampare come output il numero di caratteri presenti nella n-ma riga del file se il file e' un file regolare&lt;br /&gt;
di testo, non deve stampare nulla negli altri casi. Un file viene considerato di testo se tutti i suoi byte hanno valori compresi nel&lt;br /&gt;
range 1-127. Per controllare se il file e' “regolare” usare la system call lstat.&lt;br /&gt;
&lt;br /&gt;
Parte comune.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/types.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/stat.h&amp;gt;&lt;br /&gt;
#include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;error.h&amp;gt;&lt;br /&gt;
#include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char *argv[]){&lt;br /&gt;
	int nriga=atoi(argv[2]);&lt;br /&gt;
	/*controllo che siano stati passati 3 parametri alla funzione (la funzione stessa, il path, e l'intero*/&lt;br /&gt;
	if(argc=!3){&lt;br /&gt;
           fprintf(stderr, &amp;quot;numero argomenti sbagliati \n&amp;quot;);&lt;br /&gt;
         exit(1);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        /*controllo di aver aperto il file (e di conseguenza che il secondo parametro sia il path di un file)*/	&lt;br /&gt;
        char *path;&lt;br /&gt;
	path=argv[1];&lt;br /&gt;
	FILE *fd;&lt;br /&gt;
	fd=fopen(path,&amp;quot;r&amp;quot;);&lt;br /&gt;
	if (fd==NULL){&lt;br /&gt;
	   fprintf(stderr, &amp;quot;file non aperto correttamente\n&amp;quot;);&lt;br /&gt;
	   exit(2);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/*controllo che il file sia regolare*/&lt;br /&gt;
	struct stat buf;&lt;br /&gt;
	lstat(path,&amp;amp;buf);&lt;br /&gt;
	if (!(S_ISREG(buf.st_mode))){&lt;br /&gt;
	    fprintf(stderr, &amp;quot;file non regolare\n&amp;quot;);&lt;br /&gt;
	    exit(3);&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/source&amp;gt;	&lt;br /&gt;
Primo modo&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
 /*inizio a scorrere il file finche non mi posiziono sulla riga giusta*/&lt;br /&gt;
	int contrighe=0, contchar=0, c,cha=(int)'\n';&lt;br /&gt;
	&lt;br /&gt;
        while ((c=getc(fd))!=EOF) { &lt;br /&gt;
		&lt;br /&gt;
                if (c==cha){&lt;br /&gt;
                    contrighe++;&lt;br /&gt;
		}&lt;br /&gt;
	&lt;br /&gt;
		if ((contrighe==nriga)&amp;amp;&amp;amp;(cha!=c)){&lt;br /&gt;
		    contchar++;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
	contchar--;&lt;br /&gt;
        printf(&amp;quot;il numero di caratteri nella righa sono:%d&amp;quot;,contchar);&lt;br /&gt;
        fclose(fd);&lt;br /&gt;
 	return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Secondo modo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
/*inizio a scorrere il file finche non mi posiziono sulla riga giusta*/&lt;br /&gt;
	char *line=NULL;&lt;br /&gt;
	int i, contchar;&lt;br /&gt;
	size_t boh=0;&lt;br /&gt;
	for (i=0;i&amp;lt;nriga;i++){&lt;br /&gt;
		getline(&amp;amp;line,&amp;amp;boh,fd);&lt;br /&gt;
		free(line);&lt;br /&gt;
		line=NULL;&lt;br /&gt;
	}&lt;br /&gt;
	getline(&amp;amp;line,&amp;amp;boh,fd);&lt;br /&gt;
	contchar=strlen(line)-1;&lt;br /&gt;
	printf(&amp;quot;il numero di caratteri nella righa sono: %d\n&amp;quot;,contchar);&lt;br /&gt;
        fclose(fd);&lt;br /&gt;
 	return 0;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mikidonza</name></author>
	</entry>
	<entry>
		<id>https://so.v2.cs.unibo.it/wiki/index.php?title=Prova_pratica_23_01_14&amp;diff=985</id>
		<title>Prova pratica 23 01 14</title>
		<link rel="alternate" type="text/html" href="https://so.v2.cs.unibo.it/wiki/index.php?title=Prova_pratica_23_01_14&amp;diff=985"/>
		<updated>2015-04-10T11:52:40Z</updated>

		<summary type="html">&lt;p&gt;Mikidonza: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Soluzione di ababa ==&lt;br /&gt;
Scrivere un programma in C “linean” che prenda come parametro il pathname di un file e un numero intero (che chiameremo&lt;br /&gt;
n). Il programma deve stampare come output il numero di caratteri presenti nella n-ma riga del file se il file e' un file regolare&lt;br /&gt;
di testo, non deve stampare nulla negli altri casi. Un file viene considerato di testo se tutti i suoi byte hanno valori compresi nel&lt;br /&gt;
range 1-127. Per controllare se il file e' “regolare” usare la system call lstat.&lt;br /&gt;
&lt;br /&gt;
Parte comune.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/types.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/stat.h&amp;gt;&lt;br /&gt;
#include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;error.h&amp;gt;&lt;br /&gt;
#include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char *argv[]){&lt;br /&gt;
	int nriga=atoi(argv[2]);&lt;br /&gt;
	/*controllo che siano stati passati 3 parametri alla funzione (la funzione stessa, il path, e l'intero*/&lt;br /&gt;
	if(argc=!3){&lt;br /&gt;
           fprintf(stderr, &amp;quot;numero argomenti sbagliati \n&amp;quot;);&lt;br /&gt;
         exit(1);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        /*controllo di aver aperto il file (e di conseguenza che il secondo parametro sia il path di un file)*/	&lt;br /&gt;
        char *path;&lt;br /&gt;
	path=argv[1];&lt;br /&gt;
	FILE *fd;&lt;br /&gt;
	fd=fopen(path,&amp;quot;r&amp;quot;);&lt;br /&gt;
	if (fd==NULL){&lt;br /&gt;
	   fprintf(stderr, &amp;quot;file non aperto correttamente\n&amp;quot;);&lt;br /&gt;
	   exit(2);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/*controllo che il file sia regolare*/&lt;br /&gt;
	struct stat buf;&lt;br /&gt;
	lstat(path,&amp;amp;buf);&lt;br /&gt;
	if (!(S_ISREG(buf.st_mode))){&lt;br /&gt;
	    fprintf(stderr, &amp;quot;file non regolare\n&amp;quot;);&lt;br /&gt;
	    exit(3);&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/source&amp;gt;	&lt;br /&gt;
Primo modo&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
 /*inizio a scorrere il file finche non mi posiziono sulla riga giusta*/&lt;br /&gt;
	int contrighe=0, contchar=0, c,cha=(int)'\n';&lt;br /&gt;
	&lt;br /&gt;
        while ((c=getc(fd))!=EOF) { &lt;br /&gt;
		&lt;br /&gt;
                if (c==cha){&lt;br /&gt;
		    contrighe++;&lt;br /&gt;
		}&lt;br /&gt;
	&lt;br /&gt;
		if ((contrighe==nriga)&amp;amp;&amp;amp;(cha!=c)){&lt;br /&gt;
		    printf(&amp;quot;entro?&amp;quot;);&lt;br /&gt;
		    contchar++;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
	contchar--;&lt;br /&gt;
	printf(&amp;quot;il numero di caratteri nella righa sono:%d&amp;quot;,contchar);&lt;br /&gt;
        fclose(fd);&lt;br /&gt;
 	return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Secondo modo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
/*inizio a scorrere il file finche non mi posiziono sulla riga giusta*/&lt;br /&gt;
	char *line=NULL;&lt;br /&gt;
	int i, contchar;&lt;br /&gt;
	size_t boh=0;&lt;br /&gt;
	for (i=0;i&amp;lt;nriga;i++){&lt;br /&gt;
		getline(&amp;amp;line,&amp;amp;boh,fd);&lt;br /&gt;
		free(line);&lt;br /&gt;
		line=NULL;&lt;br /&gt;
	}&lt;br /&gt;
	getline(&amp;amp;line,&amp;amp;boh,fd);&lt;br /&gt;
	contchar=strlen(line)-1;&lt;br /&gt;
	printf(&amp;quot;il numero di caratteri nella righa sono: %d\n&amp;quot;,contchar);&lt;br /&gt;
        fclose(fd);&lt;br /&gt;
 	return 0;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mikidonza</name></author>
	</entry>
	<entry>
		<id>https://so.v2.cs.unibo.it/wiki/index.php?title=Prova_pratica_23_01_14&amp;diff=984</id>
		<title>Prova pratica 23 01 14</title>
		<link rel="alternate" type="text/html" href="https://so.v2.cs.unibo.it/wiki/index.php?title=Prova_pratica_23_01_14&amp;diff=984"/>
		<updated>2015-04-10T11:50:40Z</updated>

		<summary type="html">&lt;p&gt;Mikidonza: Created page with &amp;quot;== Soluzione di ababa == Scrivere un programma in C “linean” che prenda come parametro il pathname di un file e un numero intero (che chiameremo n). Il programma deve stam...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Soluzione di ababa ==&lt;br /&gt;
Scrivere un programma in C “linean” che prenda come parametro il pathname di un file e un numero intero (che chiameremo&lt;br /&gt;
n). Il programma deve stampare come output il numero di caratteri presenti nella n-ma riga del file se il file e' un file regolare&lt;br /&gt;
di testo, non deve stampare nulla negli altri casi. Un file viene considerato di testo se tutti i suoi byte hanno valori compresi nel&lt;br /&gt;
range 1-127. Per controllare se il file e' “regolare” usare la system call lstat.&lt;br /&gt;
&lt;br /&gt;
Parte comune.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/types.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/stat.h&amp;gt;&lt;br /&gt;
#include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;error.h&amp;gt;&lt;br /&gt;
#include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char *argv[]){&lt;br /&gt;
	int nriga=atoi(argv[2]);&lt;br /&gt;
	/*controllo che siano stati passati 3 parametri alla funzione (la funzione stessa, il path, e l'intero*/&lt;br /&gt;
	if(argc=!3){&lt;br /&gt;
           fprintf(stderr, &amp;quot;numero argomenti sbagliati \n&amp;quot;);&lt;br /&gt;
         exit(1);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        /*controllo di aver aperto il file (e di conseguenza che il secondo parametro sia il path di un file)*/	&lt;br /&gt;
        char *path;&lt;br /&gt;
	path=argv[1];&lt;br /&gt;
	FILE *fd;&lt;br /&gt;
	fd=fopen(path,&amp;quot;r&amp;quot;);&lt;br /&gt;
	if (fd==NULL){&lt;br /&gt;
	   fprintf(stderr, &amp;quot;file non aperto correttamente\n&amp;quot;);&lt;br /&gt;
	   exit(2);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/*controllo che il file sia regolare*/&lt;br /&gt;
	struct stat buf;&lt;br /&gt;
	lstat(path,&amp;amp;buf);&lt;br /&gt;
	if (!(S_ISREG(buf.st_mode))){&lt;br /&gt;
	    fprintf(stderr, &amp;quot;file non regolare\n&amp;quot;);&lt;br /&gt;
	    exit(3);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/*inizio a scorrere il file finche non mi posiziono sulla riga giusta*/&lt;br /&gt;
	int contrighe=0;&lt;br /&gt;
	int contchar=0;&lt;br /&gt;
	int c;&lt;br /&gt;
	int cha=(int)'\n';&lt;br /&gt;
&amp;lt;/source&amp;gt;	&lt;br /&gt;
Primo modo&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	while ((c=getc(fd))!=EOF) { &lt;br /&gt;
		&lt;br /&gt;
                if (c==cha){&lt;br /&gt;
		    contrighe++;&lt;br /&gt;
		}&lt;br /&gt;
	&lt;br /&gt;
		if ((contrighe==nriga)&amp;amp;&amp;amp;(cha!=c)){&lt;br /&gt;
		    printf(&amp;quot;entro?&amp;quot;);&lt;br /&gt;
		    contchar++;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
	contchar--;&lt;br /&gt;
	printf(&amp;quot;il numero di caratteri nella righa sono:%d&amp;quot;,contchar);&lt;br /&gt;
        fclose(fd);&lt;br /&gt;
 	return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Secondo modo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
/*inizio a scorrere il file finche non mi posiziono sulla riga giusta*/&lt;br /&gt;
	char *line=NULL;&lt;br /&gt;
	int i, contchar;&lt;br /&gt;
	size_t boh=0;&lt;br /&gt;
	for (i=0;i&amp;lt;nriga;i++){&lt;br /&gt;
		getline(&amp;amp;line,&amp;amp;boh,fd);&lt;br /&gt;
		free(line);&lt;br /&gt;
		line=NULL;&lt;br /&gt;
	}&lt;br /&gt;
	getline(&amp;amp;line,&amp;amp;boh,fd);&lt;br /&gt;
	contchar=strlen(line)-1;&lt;br /&gt;
	printf(&amp;quot;il numero di caratteri nella righa sono: %d\n&amp;quot;,contchar);&lt;br /&gt;
        fclose(fd);&lt;br /&gt;
 	return 0;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mikidonza</name></author>
	</entry>
	<entry>
		<id>https://so.v2.cs.unibo.it/wiki/index.php?title=Main_Page&amp;diff=983</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://so.v2.cs.unibo.it/wiki/index.php?title=Main_Page&amp;diff=983"/>
		<updated>2015-04-10T11:35:17Z</updated>

		<summary type="html">&lt;p&gt;Mikidonza: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Questo &amp;amp;egrave; il Wiki del Corso di Sistemi Operativi&lt;br /&gt;
&lt;br /&gt;
[[Prova pratica 23_01_14]]&lt;br /&gt;
&lt;br /&gt;
[[Ampiezza di tutti i file di una directory divisi per suffisso (Prova pratica 29-05-2013)]]&lt;br /&gt;
&lt;br /&gt;
[[Albero binario 2002-07-23]]&lt;br /&gt;
&lt;br /&gt;
[[50 Sfumature di Fibonacci]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 1 Prova Pratica 20/06/12]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 3 Prova Pratica 17/06/14]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 3, prova pratica 13/09/2013]]&lt;br /&gt;
&lt;br /&gt;
[[Prova pratica 17 07 14]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 1, prova pratica 20.01.2015]]&lt;br /&gt;
&lt;br /&gt;
[[bash scripting 2002 gennaio]]&lt;br /&gt;
&lt;br /&gt;
[[Process Race (Prova pratica 18-07-2013)]]&lt;br /&gt;
&lt;br /&gt;
[[Arduino web controller]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 1, prova pratica 29.05.2013]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 1, prova pratica 29.05.2014]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 1, prova pratica 20.06.2013]]&lt;br /&gt;
&lt;br /&gt;
[[Prova_pratica_21_01_15]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 1, prova pratica 17.06.2014]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 1 - 25.09.2014]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 1, prova pratica 20/02/2014]]&lt;br /&gt;
&lt;br /&gt;
[[Demone ruba input]]&lt;br /&gt;
&lt;br /&gt;
[[wifi daemon]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 1, prova pratica 13/09/2013]]&lt;br /&gt;
&lt;br /&gt;
[[Problema Dei Filosofi]]&lt;br /&gt;
&lt;br /&gt;
[http://www.cs.unibo.it/~renzo/so/portability.tgz portability.tgz]&lt;br /&gt;
&lt;br /&gt;
[[listx.h commentato + esempio su container_of]]&lt;br /&gt;
&lt;br /&gt;
[[Congettura di Goldbach]]&lt;br /&gt;
&lt;br /&gt;
[[list segments]]&lt;br /&gt;
&lt;br /&gt;
[[Execv/fork su file aperto]]&lt;br /&gt;
&lt;br /&gt;
[[Angry_Children]]&lt;br /&gt;
&lt;br /&gt;
[[Esercizio 1, prova pratica 12/02/2009]]&lt;br /&gt;
&lt;br /&gt;
[[(Programma C) Un quadrato nella matrice]]&lt;br /&gt;
&lt;br /&gt;
[[&amp;quot;classi&amp;quot;_in_C]]&lt;br /&gt;
&lt;br /&gt;
[[Esempi del 02 dicembre 2014]]&lt;br /&gt;
&lt;br /&gt;
[[Materiale dell'AA 2013-14]]&lt;br /&gt;
----&lt;br /&gt;
Ricordate che per creare un account o quando viene richiesto di risolvere un semplice calcolo occorre ricordare quanto scritto [[qui]]&lt;/div&gt;</summary>
		<author><name>Mikidonza</name></author>
	</entry>
</feed>