2010-08-09 5 views
-9

Quelqu'un peut-il me dire la sortie du code ci-dessous, si "bye" sera imprimé ou non?Linux system() API

#include <stdio.h> 

int main() 
{ 

system("ls -l"); 
printf("bye"); 

return 0; 
} 
+3

Il est impoli de crier ... s'il vous plaît ne pas écrire dans toutes les capitales. –

+3

Ne serait pas plus facile si vous venez de compiler et d'exécuter le code? – banx

+1

J'ai édité ceci pour enlever le CRIBLAGE .... nous ne sommes pas des lecteurs de l'esprit et faire le sale boulot pour vous ... l'essayer et voir par vous-même ... je vote pour fermer cette question car elle est inutile .... – t0mm13b

Répondre

1

Oui, il sera imprimé. Pourquoi ne pas le compiler et le tester par vous-même? Coupez et collez ce que vous avez écrit dans un fichier, par exemple. foo.c, puis procédez comme suit

gcc -o foo foo.c 
./foo 

Comme il n'y a pas de retour à la ligne après votre printf (« bye »), il finira au début de votre ligne actuelle; mettre printf ("bye \ n") à la place sera un peu plus clair.

8

man system dit:

int system(const char *command); 

system() exécute une commande spécifiée dans command en appelant /bin/sh -c command, et retourne après la commande est terminée.

Et après system() retourné, votre printf sera exécuté.

+0

Ok, je ne criais pas en écrivant en majuscules. Juste depuis le débordement de la nouvelle pile, je l'ai écrit en majuscules pour qu'il soit dans la bonne file. Aussi, Mr.tommieb75, nous sommes ici pour échanger nos réponses sans nous insulter juste parce que l'un d'entre nous connaît le répondre. Comment avez-vous écrit grossièrement, Si vous ne pouvez pas me fournir les réponses, alors il vaut mieux rester calme ou me suggérer poliment. Je crois que vous êtes suffisamment mûr pour avoir ce sens. Son un forum, pour aider les autres pas forcés d'aider! – mint9

0

Pourquoi pas? Il n'y a pas d'instruction conditionnelle, donc chaque partie du code sera exécutée.

Il imprimera la sortie de la commande fournie par le système puis imprimez « bye »

0

Le programme va exécuter ls -l très bien.

De plus, "au revoir" devrait en effet être imprimé. Cependant, comme vous n'avez pas ajouté de caractère '\ n', vous le verrez seulement avec votre invite. De plus, si vous ne le voyez pas, alors pour une raison quelconque, votre sortie ne roule pas à la sortie du programme. Ajouter un caractère \ n peut très bien résoudre ce problème si c'est ce que vous voyez.

0

Tout dépend de la mémoire libre. Vous devrez vérifier la valeur de retour du système command.it renvoie 0 en cas de succès. Votre instruction printf sera appelée mais n'est pas sûre que la commande système sera toujours réussie.

Merci, Neel

+0

merci pour votre réponse .. – mint9