में ls -al कमांड को कार्यान्वित करना मेरी कक्षाओं में से किसी एक से असाइनमेंट के हिस्से के रूप में, मुझे ls -al कमांड के परिणामों को डुप्लिकेट करने के लिए सी में एक प्रोग्राम लिखना होगा। मैंने आवश्यक सामग्रियों पर पढ़ा है लेकिन मुझे अभी भी सही आउटपुट नहीं मिल रहा है। यहां मेरा कोड अभी तक है, इसे केवल फ़ाइल आकार और फ़ाइल नाम मुद्रित करना चाहिए, लेकिन फाइल का आकार इसकी प्रिंटिंग सही नहीं है।सी
कोड:
[[email protected] ~]# ./a.out Downloads
4096 ..
4096 hw22.c
4096 ankur.txt
4096 .
4096 destination.txt
यहाँ कर रहे हैं सही आकार:
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
int main(int argc, char* argv[])
{
DIR *mydir;
struct dirent *myfile;
struct stat mystat;
mydir = opendir(argv[1]);
while((myfile = readdir(mydir)) != NULL)
{
stat(myfile->d_name, &mystat);
printf("%d",mystat.st_size);
printf(" %s\n", myfile->d_name);
}
closedir(mydir);
}
ये कोड को क्रियान्वित करने के बाद मेरे परिणाम हैं
[[email protected] ~]# ls -al Downloads
total 20
drwxr-xr-x. 2 root root 4096 Nov 26 01:35 .
dr-xr-x---. 24 root root 4096 Nov 26 01:29 ..
-rw-r--r--. 1 root root 27 Nov 21 06:32 ankur.txt
-rw-r--r--. 1 root root 38 Nov 21 06:50 destination.txt
-rw-r--r--. 1 root root 1139 Nov 25 23:38 hw22.c
कर सकते हैं किसी को भी अपनी गलती का कहना है कृपया।
धन्यवाद,
अंकुर
मेरे लिए ठीक काम करता है। एक त्रुटि है या नहीं, यह देखने के लिए stat() के वापसी मान की जांच करें। – Neal
यहां भी ठीक काम करता है। सबकुछ (opendir(), readdir(), stat()) के लिए त्रुटि जांच का परिचय दें। –
यदि आप इसे '.' पर चलाते हैं तो ठीक काम करता है, लेकिन अगर आप इसे दूसरी निर्देशिका नहीं देते हैं। –