• Aucun résultat trouvé

1 Shell UNIX (4 points) Analyser la session suivante :

N/A
N/A
Protected

Academic year: 2022

Partager "1 Shell UNIX (4 points) Analyser la session suivante :"

Copied!
3
0
0

Texte intégral

(1)

Examen Système L3 MASS Page 1 sur 3

Université Pierre Mendès France 5 mai 2015

U.F.R. Sciences de l’Homme et de la Société Département IMSS - L3 MASS

InfF6 : Examen de Systèmes

Durée : 1h30

Documents autorisés

Si vous avez un doute sur la syntaxe d'une commande où sur le caractère qui remplit un certain rôle dans le langage de commande, utilisez votre propre syntaxe, ou un autre caractère, mais ajoutez un commentaire explicatif. Les exercices peuvent être effectués dans n’importe quel ordre.

1 Shell UNIX (4 points)

Analyser la session suivante :

a) Quelle est la cause du message d’erreur ? Proposer une méthode permettant de lancer testprog.

b) Quel(s) utilisateur(s) peuvent modifier : - le fichier outils.java ?

- le fichier prog.c ? c) Quels utilisateurs peuvent :

 Lire le fichier testprog ?

 Modifier le fichier testprog ?

 Exécuter le fichier testprog ?

d) Quelle(s) commande(s) faut-il faire pour que seul toto puisse avoir accès aux fichiers outils.java et outils.class ?

$ echo $PATH

/usr/bin:/usr/local/bin

$ ls -l total 24

-rw-rw-r-- 1 toto miass3 4209 oct 10 16:03 outils.java -rw-rw-r-- 1 toto miass3 2121 oct 10 15:58 outils.class -rw-r--- 1 toto miass3 1590 oct 13 10:05 prog.c

-rw-r--- 1 toto miass3 346 nov 8 2009 Makefile -rwxr-xr-- 1 toto miass3 147 oct 10 16:15 testprog

$ testprog

bash: testprog: not found

(2)

Examen Système L3 MASS Page 2 sur 3

2 Shell Windows (8 points)

a) On considère le fichier de commande suivant nommé faire.bat :

@echo off

if "%1"=="" goto noparam if "%1"=="/?" goto usage if "%2"=="" goto usage set r=%1

set d=%2 pushd %r%

FOR %%A in (*.*) DO type %%A>..\%d%\%%A popd

goto fin :noparam

echo Aucun parametre ! :usage

echo format de la commande : faire repsource repdest goto fini

:fin

echo c est fini :fini

Cette commande a deux paramètres qui sont des répertoires.

q1 : Indiquez ce qu’affiche la commande faire q2 : Indiquez ce qu’affiche la commande faire r1 q3 : Indiquez ce qu’affiche la commande faire r1 r2 q4 : Indiquez précisément ce que fait la commande faire r1 r2

b) Ecriture d’un script Windows

Ecrire le fichier de commande recup.bat, permettant de copier des fichiers passés en paramètres, de la racine d’une clé USB vers un répertoire donné :

La commande recup.bat est appelée de la manière suivante :

RECUP K: C:\Documents\photos *.jpg vacances\lulu.jpg plantes\*.jpg - le premier paramètre K: représente la lettre associée à la clé usb ;

- le second paramètre est le répertoire destination dans lequel doivent être copiés les fichiers;

- les autres paramètres, d’un nombre variable, sont les fichiers à copier.

L’exemple ci-dessus correspond à la copie des fichiers de suffixe .jpg du répertoire K:\, du fichier lulu.jpg du répertoire K:\vacances, et des fichiers de suffixe .jpg du répertoire K:\plantes, vers le répertoire C:\Documents\photos

La commande proposera une aide d’usage de la commande si le premier paramètre est /?

Si le répertoire destination n’existe pas, on crée ce répertoire.

La commande affichera un message d’erreur dans les cas suivants : - moins de 3 paramètres,

- la création du répertoire destination (si le cas se présente) a échoué, - si une copie de fichier ne s’est pas déroulée correctement.

- le(s) fichier(s) à copier n’existe(nt) pas dans le répertoire racine de la clé usb, pour information le test IF EXIST fonctionne pour des noms de fichiers comportant des caractères jokers, par exemple, IF EXIST *.jpg est vrai si le répertoire courant contient au-moins un fichier de suffixe .jpg

(3)

Examen Système L3 MASS Page 3 sur 3

3 Programmation client/serveur en Java (4 pts)

1) Expliquez ce que fait l’instruction suivante extraite du programme client générique programmé en TP :

sClient = new Socket(host.getText(), Integer.parseInt(port.getText()));

2) Citez les erreurs qui peuvent survenir durant cette opération et les exceptions Java correspondantes à prendre en compte dans le programme.

4 Processus Unix (4 points)

Soit le programme C / Unix suivant :

#include <stdlib.h> /* Pour exit */

#include <unistd.h> /* Pour fork, getpid, getppid, sleep */

#include <sys/types.h> /* Pour pid_t (fork, getpid, getppid) */

int main(void) {

pid_t id1;

pid_t id2;

id1 = fork();

printf("Bonjour!\n");

if (id1 == 0) {

sleep(2);

printf("Je suis %i, ca va toi ?\n", getpid());

} else {

sleep(1);

printf(("Je suis %i, et toi ?\n", getpid());

}

id2 = fork();

printf("Pas mal, je suis %i\n",getpid());

return EXIT_SUCCESS;

}

On suppose que fork() n’échoue jamais (ne renvoie jamais -1).

a) Combien de processus sont créés par ce programme ?

b) Faire la trace d'exécution de ce programme : écrire ce qu'il va afficher sur l'écran, dans le bon ordre, en justifiant votre réponse. Pour cela, on suppose que le processus qui exécute ce programme (le père) porte le numéro 1000 et que les processus créés prendront les numéros suivants (1001, 1002, …).

Références

Documents relatifs

[r]

[r]

Utilisez la commande tar cvfz &lt;nom_archive&gt; &lt;nom_repertoire&gt; pour faire une archive compressée de votre répertoire.. Listez le contenu de l’archive non compressée

Avant de démarrer l'une ou l'autre procédure, arrêtez votre produit et mettez-le hors tension, raccordez écran et clavier (ou un ordinateur en mode console pour le SN150), puis

• Les noms de fichiers possèdent souvent une extension qui permet d’identifier facilement le type de fichier dont il s’agit (par ex : .c pour un programme C, .f, .f77, .f90 pour

pour chaque utilisateur à créer (nouveaux comme anciens), générer toutes les informations nécessaires et éviter les éventuels doublons (en eet, la dénition des comptes

It takes a long time to become a

HP-UX does the best job of giving us the best detailed command output so we need to calculate only one piece of data for our required output, percent of total swap space