Rainbow-Warrior
04-02-2008, 19:04
Hallo zusammen,
ich möchte ein c-programm schreiben, welches nmblookup und ping verwendet. Da ich unter linux nicht ohne weiteres clients über den namen anpingen kann. Ein entsprechendes Bash-Skript war nicht das Problem. Aber nun möchte ich meine C Kenntnisse vorrantreiben indem ich das in C umsetzte. Leider stoße ich ziemlich früh an meine Grenzen:
Diesen Code habe ich im Internet gefunden, bekomme ihn aber nicht zum laufen.
#include <cstdlib>
#include <iostream>
#include <stdlib.h>
using namespace std;
void ping()
{
string ip;
int a,b,c,d;
cout << "ip eingeben" << endl;
cin >> ip;
cout << ip << endl;
system(("ping " + ip)->c_str());
}
int main(int argc, char *argv[])
{
ping();
system("PAUSE");
return EXIT_SUCCESS;
}
Das "using namespace std;" kenne ich noch aus meine "Microsoft Visual C++ - Zeit" noch. Ich habe auch in meiner neuen Lektüre ("C und Linux, Martin Gräfe") nichts darüber gelesen, brauch ich das überhaupt?
Wenn ich diesen Code kompilieren möchte, bekomme ich folgende Fehlermeldung:
gcc -Wall ping.o -o ping
ping.o: file not recognized: File format not recognized
collect2: ld returned 1 exit status
Ich habe schon einiges ausprobiert und gesucht, habe es aber nicht hinbekommen. Hoffe es mag mir jemand helfen.
Using built-in specs.
Target: i586-suse-linux
Configured with: ../configure --enable-threads=posix --prefix=/usr --with-local-prefix=/usr/local --infodir=/usr/share/info --mandir=/usr/share/man --libdir=/usr/lib --libexecdir=/usr/lib --enable-languages=c,c++,objc,fortran,obj-c++,java,ada --enable-checking=release --with-gxx-include-dir=/usr/include/c++/4.2.1 --enable-ssp --disable-libssp --disable-libgcj --with-slibdir=/lib --with-system-zlib --enable-shared --enable-__cxa_atexit --enable-libstdcxx-allocator=new --disable-libstdcxx-pch --program-suffix=-4.2 --enable-version-specific-runtime-libs --without-system-libunwind --with-cpu=generic --host=i586-suse-linux
Thread model: posix
gcc version 4.2.1 (SUSE Linux)
Gruß Björn
ich möchte ein c-programm schreiben, welches nmblookup und ping verwendet. Da ich unter linux nicht ohne weiteres clients über den namen anpingen kann. Ein entsprechendes Bash-Skript war nicht das Problem. Aber nun möchte ich meine C Kenntnisse vorrantreiben indem ich das in C umsetzte. Leider stoße ich ziemlich früh an meine Grenzen:
Diesen Code habe ich im Internet gefunden, bekomme ihn aber nicht zum laufen.
#include <cstdlib>
#include <iostream>
#include <stdlib.h>
using namespace std;
void ping()
{
string ip;
int a,b,c,d;
cout << "ip eingeben" << endl;
cin >> ip;
cout << ip << endl;
system(("ping " + ip)->c_str());
}
int main(int argc, char *argv[])
{
ping();
system("PAUSE");
return EXIT_SUCCESS;
}
Das "using namespace std;" kenne ich noch aus meine "Microsoft Visual C++ - Zeit" noch. Ich habe auch in meiner neuen Lektüre ("C und Linux, Martin Gräfe") nichts darüber gelesen, brauch ich das überhaupt?
Wenn ich diesen Code kompilieren möchte, bekomme ich folgende Fehlermeldung:
gcc -Wall ping.o -o ping
ping.o: file not recognized: File format not recognized
collect2: ld returned 1 exit status
Ich habe schon einiges ausprobiert und gesucht, habe es aber nicht hinbekommen. Hoffe es mag mir jemand helfen.
Using built-in specs.
Target: i586-suse-linux
Configured with: ../configure --enable-threads=posix --prefix=/usr --with-local-prefix=/usr/local --infodir=/usr/share/info --mandir=/usr/share/man --libdir=/usr/lib --libexecdir=/usr/lib --enable-languages=c,c++,objc,fortran,obj-c++,java,ada --enable-checking=release --with-gxx-include-dir=/usr/include/c++/4.2.1 --enable-ssp --disable-libssp --disable-libgcj --with-slibdir=/lib --with-system-zlib --enable-shared --enable-__cxa_atexit --enable-libstdcxx-allocator=new --disable-libstdcxx-pch --program-suffix=-4.2 --enable-version-specific-runtime-libs --without-system-libunwind --with-cpu=generic --host=i586-suse-linux
Thread model: posix
gcc version 4.2.1 (SUSE Linux)
Gruß Björn