Donc je construis un shell et une commande que j'implémente est l'invite. Cela prendra un argument et définir que l'invite, mais si aucun argument est entré, il vous demandera l'entrée d'utilisateur et utiliser alors que ..... que ça terriblement libellée de façon très alors voici un exemple:Défaut Seg lors de la saisie de l'utilisateur?
[SHELL] prompt code
code[SHELL] ls
code[SHELL] ....
ou
[SHELL] prompt
please enter a prefix: (user input goes here, say code again)
code[SHELL]
maintenant, la première situation fonctionne très bien, mais lorsque je tente rapide sans argument, il demande l'entrée d'utilisateur, mais quand je rentre, il segmente les défauts et je ne sais pas pourquoi.
C'est le code que j'ai jusqu'à présent:
void prompt(char *target)
{
if(!target)
{
printf("Please enter a prefix: ");
scanf("%s", &target);
}
char *result = malloc(strlen(SHELL) + strlen(target) + 1);
strcpy(result, target);
strcat(result, SHELL);
SHELL = result;
}
Toutes les idées ?? Peut-être que c'est juste une erreur simple de ma part mais il semble que cela devrait fonctionner. Par ailleurs, dans mon code, "SHELL" est juste une macro pour un tableau de char qui est "[MY_SHELL]:".
Ahhh ok merci beaucoup! Cela a fonctionné, (je ne garde pas le 1000 dans malloc, essayé avec 10) mais ouais ça a marché, alors merci! – VakarianWrex