Re: Questions

Top Page

Reply to this message
Author: Francois-Xavier 'FiX' KOWALSKI
Date:  
To: Frederic Cazenave
CC: guilde
Subject: Re: Questions
Frederic Cazenave <frederic.cazenave@???> writes:

> Bonjour a tous,
>
> 2 petites questions pour vous mettre en forme en ce vendredi matin :
>
> 1ere question simple :
> j ai un pc linux qui tourne sous redhat 5.2 et fvwm. je ne sais plus
> quel fichier il faut modifier et avec quoi pour que la fenetre active
> soit celle ou je viens de cliquer. Pour le moment, je dois tjrs la
> mettre
> en icon et l'ouvrir a nouveau.


~/.fvwmrc?

> 2eme question un peu plus dure : existe t il un moyen de renomer un
> process apres un fork ? par exemple un programme "Pere" fait un fork ,
> lors d'un ps les 2 process apparaissent : pere et pere. moi je voudrais
> que le
> file perde le nom du pere pour toto


Cette information est maintenue dans les tables de taches du noyau &
donc inaccessible en ecriture (a moins d'ecrire du code noyau & s'en
servir pour manipuler cette info). Tu ne peux que lire cette info
depuis le mapping de cette table dans "/proc".. Pour ton cas:
"/proc/current/cmdline" (sans garantie de succes).

,----
| #include <stdio.h>
| #include <assert.h>
| 
| main()
| {
|         FILE* pname = fopen( "/proc/self/cmdline", "w" );
|         assert( pname != NULL );
|         fprintf( pname, "toto" );
|         fclose ( pname );
| }

`----

,----
| [fxk@fuerteventura fxk]> gcc toto.c
| [fxk@fuerteventura fxk]> ./a.out
| a.out: toto.c:7: main: Assertion `pname != ((void *)0)' failed.
| Abort (core dumped)

`----

L'autre possibilite est de faire un lien symbolique de "pere" vers
"toto" et de faire un "exec toto" une fois dans le fils. Evidement,
dans ce cas tu perds le contexte d'execution de "pere" & tu dois tout
reconstruire...

FiX
--
François-Xavier 'FiX' KOWALSKI