R
Rolf Krüger
Hi
I´m about learning C/C++ and after covering the language basics I´m now
heading for my first "real" application where I need to use the POSIX stuff
for directory operations.
Here´s my problem: The following code compiles and runs as it should inside
a linux g++ environment using code::blocks IDE. But when I drop
the "struct" prefix from line 12 "struct stat st;" It doesn´t compile any
more and it says:
|12|error: expected `;' before ‘st’
|12|warning: statement is a reference, not call, to function ‘stat’
|12|warning: statement has no effect
|18|error: ‘st’ was not declared in this scope
Hmm, what´s going on here? Why can I drop "struct" from line 1? IMHO dirent
is just a struct as stat is. A similar behaviour can be found using the
cygwin environment under windows, so I guess it has nothing to do with
system dependent header files.
Any ideas?
Thanx in advance
Rolf
#include <iostream>
#include <dirent.h>
#include <sys/stat.h>
#include <sys/types.h>
using namespace std;
int main() {
dirent *entry;
struct stat st;
DIR *base;
base = opendir(".");
while( (entry = readdir(base)) != 0) {
stat(entry->d_name, &st);
cout << entry->d_name << " :: " << st.st_mode << endl;
}
closedir(base);
return 0;
}
I´m about learning C/C++ and after covering the language basics I´m now
heading for my first "real" application where I need to use the POSIX stuff
for directory operations.
Here´s my problem: The following code compiles and runs as it should inside
a linux g++ environment using code::blocks IDE. But when I drop
the "struct" prefix from line 12 "struct stat st;" It doesn´t compile any
more and it says:
|12|error: expected `;' before ‘st’
|12|warning: statement is a reference, not call, to function ‘stat’
|12|warning: statement has no effect
|18|error: ‘st’ was not declared in this scope
Hmm, what´s going on here? Why can I drop "struct" from line 1? IMHO dirent
is just a struct as stat is. A similar behaviour can be found using the
cygwin environment under windows, so I guess it has nothing to do with
system dependent header files.
Any ideas?
Thanx in advance
Rolf
#include <iostream>
#include <dirent.h>
#include <sys/stat.h>
#include <sys/types.h>
using namespace std;
int main() {
dirent *entry;
struct stat st;
DIR *base;
base = opendir(".");
while( (entry = readdir(base)) != 0) {
stat(entry->d_name, &st);
cout << entry->d_name << " :: " << st.st_mode << endl;
}
closedir(base);
return 0;
}