int main(int argc, char **argv)
{
char input[150];
char change[2] = "cd";
char *directory;
while(1) {
prompt();
fgets(input, 150, stdin);
if(strncmp(change, input, 2) == 0) {
directory = strtok(input, " ");
directory = strtok(NULL, " ");
printf(directory);
chdir(directory);
perror(directory);
}
if(feof(stdin) != 0 || input == NULL) {
printf("Auf Bald!\n");
exit(3);
}
}
}
जब मैं इसे शुरू करता हूं और "सीडी परीक्षण" टाइप करता हूं तो मुझे "ऐसी कोई फ़ाइल या निर्देशिका नहीं मिलती"। लेकिन निर्देशिका "परीक्षण" है।chdir() - ऐसी कोई फ़ाइल या निर्देशिका
आर्क लिनक्स पर चलता है।
अपनी 'निर्देशिका' स्ट्रिंग को इस तरह की जांचें: 'printf (" directory = [% s] \ n ", निर्देशिका);' यदि आपके नाम पर भटकने वाले या अन्य अवांछित/अदृश्य वर्ण हैं। –
'चार परिवर्तन [2] =" सीडी "' आकार 3 की एक चर के आकार 3 की सरणी असाइन कर रहा है। इसके बजाय 'char change [] =" cd "' का उपयोग करें। –
@ विलियमपर्सेल- असल में, वह 'strncmp (... 2)' का उपयोग कर रहा है, इसलिए यह कानूनी है, हालांकि आपका वैसे भी एक अच्छा अभ्यास है। – rodrigo