Jag har fått en liten skol uppgift att skriva ett c-program som skall göra ett system call (sys_stat) via en funktion som finns i en färdig kompilerad fil. Sys_stat har två argument, char * och struct __old_kernel_stat *, där första argumentet skall vara ett argument ifrån terminalen. Ett av problemen jag har är att få till struct:en, jag bifogar koden jag har skrivit.
Kod: Markera allt
#include <stdio.h>
#include <string.h>
struct stat {
};
extern statPrint(char*, struct stat*);
int main(int argc, char *argv[])
{
int n;
struct stat *stat;
/* call statPrint in the libstat.o file */
n = statPrint(argv[1],stat);
return 0;
}
Dessutom får jag problem när jag skall länka ihop filerna med kommandot: gcc -o stat stat.o libstat.o får då följande felmedelande: libstat.o: could not read symbols: File in wrong format
collect2: ld returned 1 exit status
Alla filer ligger i samma katalog, men har egentligen ingen aning hur dom skall ligga och jag utgår ifrån att filen är korrekt.
Hoppas någon vänlig kan hjälpa mig med detta?