fonctions systemes

fonctions systemes - C - Programmation

Marsh Posté le 02-01-2005 à 16:12:28    

Bonjour,
 
1) est ce impossible de changer la taille d'un segment de memoire partagé deja créé ?
 
2) comment mettre en processus en background en C (sans utiliser system() ou une autre commande qui se servirait d'un "builtin" du bash) ?
 
3) comment changer de repertoire (sans utiliser "cd" )?? chdir() ne marche pas :( Ou alors il fait quelque chose mais ce n'est pas ce que je veux, je voudrais qu'en faisant un system("pwd" ) par derriere on nous affiche l'argument de chdir...

Reply

Marsh Posté le 02-01-2005 à 16:12:28   

Reply

Marsh Posté le 02-01-2005 à 16:27:10    

salut,
 

Citation :

1) est ce impossible de changer la taille d'un segment de memoire partagé deja créé ?


 
Si je ne me trompe,  realloc(); voir 'man realloc'
http://www.linux-kheops.com/doc/ma [...] 3.txt.html
 
 

Citation :

2) comment mettre en processus en background en C (sans utiliser system() ou une autre commande qui se servirait d'un "builtin" du bash) ?


fork() voir  'man fork'
http://www.linux-kheops.com/doc/ma [...] ork.2.html
 
 

Citation :

3) comment changer de repertoire (sans utiliser "cd" )?? chdir() ne marche pas :( Ou alors il fait quelque chose mais ce n'est pas ce que je veux, je voudrais qu'en faisant un system("pwd" ) par derriere on nous affiche l'argument de chdir...


:sarcastic:

Reply

Marsh Posté le 02-01-2005 à 18:10:33    

redimensionner un shm segment

Citation :

Si je ne me trompe, realloc()


realloc permet effectivement de redimensionner une zone de memoire gérée de manière dynamique, mais est ce que ca marche aussi avec les segments de mémoire partagée ? On n'en parle pas dans le man... est ce les autres processus pourront eux aussi beneficier de ce redimensionnement ?
 
mettre un processus en background

Citation :

fork()


Alors la je vois pas comment on peut faire ca avec fork... :(

Reply

Marsh Posté le 02-01-2005 à 18:17:32    

1) tu peux pas iirc
2) ben tu forks, voir l'idiome du double-fork

Reply

Marsh Posté le 03-01-2005 à 18:07:31    

1) malloc n'est pas de la shared memory, pour resizer tu dois creer un autre bloc et recopier le contenu dedans. Ensuite mettre au courant tout le monde.
2) recherche des fonctions daemon() sur google, tu devrais trouver ton bonheur.
3) C'est bien chdir() pour changer de répertoire et getcwd() pour obtenir le répertoire courant...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed