मैं अपने प्रोग्रामिंग क्लास के लिए लिनक्स से सिर और पूंछ कमांड को फिर से बनाने की कोशिश कर रहा हूं। हमने अभी सी का उपयोग शुरू किया है इसलिए मैं स्मृति और पॉइंटर्स आवंटित करने के विचार के लिए नया हूं। मुझे आश्चर्य है कि यह क्यों काम नहीं करता है।सी बेसिक हेड कमांड
#include <stdio.h>
#include <stdlib.h>
int main(int argc,char **argv){
/* Checks if correct amount of arguements */
if(argc != 2 || argc != 4){
printf("Usage: %s head <file> \n Or: head <file> -n <number of characters>", argv[0]);
exit(-1);
}
if(strcmp(argv[1], "-n" != 0)){
char fileName[strlen(argv[1])] = argv[1];
}
}
//Compile error on char fileName[strlen(argv[1])] = argv[1];
कोई अतिरिक्त अंतर्दृष्टि भी सहायक होगी।
'फ़ाइल नाम' भी इसके संलग्न ब्लॉक के अंदर दिखाई देता है, इस मामले में 'if' कथन की सकारात्मक शाखा। – gcbenison
आप केवल उपयोग संदेश देखने जा रहे हैं, क्योंकि यदि 'argc' 2 के बराबर है, तो यह 4 के बराबर नहीं है, और यदि यह 4 के बराबर है, तो यह 2 के बराबर नहीं है, और यदि यह न तो है 2 और न ही 4, फिर ... –
क्या आपने जीसीसी कमांड लाइन पर '-std = c99' निर्दिष्ट किया था? आपको अभी भी एक VLA (चर-लंबाई सरणी) स्वीकार करने के लिए कंपाइलर प्राप्त करने के लिए ऐसा करने की आवश्यकता है। –