CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Questions interpréteur de commandes C.

tifil-ps3
tifil-ps3
Niveau 6
28 octobre 2014 à 19:01:03

Bonsoir,

J'ai quelques questions à propos des fonction fork, wait et execvp.

Je souhaite en quelque sorte créer un interpréteur de commandes, le tout sous linux. J'affiche une commande prompt, je saisie une chaîne de caractères (uniquement des commandes linux ex: ls -l...), puis je la découpe en paramètres et commandes puis je lance le programme.

Mais j'ai quelques difficultés, concernant la possibilité de passages de paramètres au programme lancé, ainsi que la gestion des espace, tabulations, et une allocation dynamique.

J'ai regardé sur internet quelques commandes, et justement je compte utiliser les fork, execvp et wait, mais pourriez-vous me guider un petit peu ?

Merci d'avance.

tifil-ps3
tifil-ps3
Niveau 6
28 octobre 2014 à 20:20:23

Je dois aussi travailler avec le paramètre argv.

Une fois que j'ai fait mon fgets qui lis ma chaîne de caractères, je fait mon fork, comment je peut faire mon fork ?

int x;
x = fork() ??? Comme ça ? C'est la première fois que j'utilise cette fonction.

Et comment faire pour se mettre dans le process parent ou fils ?
Pourquoi redemander de saisir une commande ?

Par contre je n'ai pas compris quand tu dis:

" dans le process fils, tu tokenizes la commande saisie en splitant sur l'espace (avec la fonction strtok). Je vais supposer que tu as stocké la commande passée en paramètre dans un char** "tokens" "

Je n'ai jamais vu les tokens.

godrik
godrik
Niveau 30
28 octobre 2014 à 20:23:59

int x;
x = fork() ??? Comme ça ? C'est la première fois que j'utilise cette fonction.

Et comment faire pour se mettre dans le process parent ou fils ?

yep exactement comme ca. Lis le man de fork. La valeur de x indique si tu es le fils ou le pere.

tifil-ps3
tifil-ps3
Niveau 6
28 octobre 2014 à 20:30:59

Si x vaut 0, je suis dans le fils, sinon je suis dans le père (ou alors si x > 0 ou < 0 ?).

tifil-ps3
tifil-ps3
Niveau 6
28 octobre 2014 à 21:01:03

Mais c'est quoi cette histoire de token ?

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment