HeikeHarnack
Anmeldungsdatum: 5. Mai 2014
Beiträge: 70
Wohnort: Meiderich (Duisburg)
|
Hallo, ich lerne gerade C bzw. C++. Ich habe inzwischen gcc und auch ein a.out erstellt. Leider läßt sich das nicht starten, auch nicht mit ./a.out: Keine Berechtigung.
Sudo hilft nicht, chmod +x oder a+x hilft auch nicht. Im Dateimanager habe ich im Reiter Dateieigenschaften auch auf 'jeder darf ausführen' gestellt. Gelesen habe ich, dass ich auf mein Dateisystem achten soll (ext2?) Wo sehe ich denn, welches ich habe? Was tun? Heike Moderiert von XM-Franz: Kein Bezug zum Forum "Programme" vorhanden. Ins passende Forum verschoben.
|
ostcar
Ehemalige
Anmeldungsdatum: 27. Juli 2006
Beiträge: 2748
Wohnort: Leipzig
|
Hallo Heike, das von dir verwendete Dateisystem kannst du mit dem Terminalbefehl
mount
herausfinden. Alternativ kannst du das grafische Programm gparted verwenden. Wenn du dein Ubuntu normal installiert hast, wirst du vermutlich ext4 haben und damit (grundsätzlich) kein Problem. Kannst du vielleicht ein kleines C-Programm hier veröffentlichen und wie genau du es kompilierst, daher den genauen Befehl, den du ins Terminal eintippst?
|
apt-ghetto
Anmeldungsdatum: 3. Juni 2014
Beiträge: 2943
|
HeikeHarnack schrieb: ich lerne gerade C bzw. C++. Ich habe inzwischen gcc und auch ein a.out erstellt.
Zeig doch bitte mal, mit welchem Befehl du a.out im Terminal erstellt hast. Gegebenenfalls die komplette Ausgabe. Leider läßt sich das nicht starten, auch nicht mit ./a.out: Keine Berechtigung.
Zeig bitte auch die Rechte der Datei mit ls -l Gelesen habe ich, dass ich auf mein Dateisystem achten soll (ext2?) Wo sehe ich denn, welches ich habe?
Z.B. mit sudo parted -l
sudo lsblk -o NAME,FSTYPE etc.
|
track
Anmeldungsdatum: 26. Juni 2008
Beiträge: 7174
Wohnort: Wolfen (S-A)
|
Auf dem Standard- Dateisystem (dem, wo Dein *nix- System drauf liegt) wirst Du ziemlich sicher ein ext[234] drauf haben, auf einem Stick oder einer externen Platte dagegen wahrscheinlich ein *FAT oder NTFS. Wenn Du es genau wissen willst: ein mount im Terminal verrät es Dir. LG, und frohe Pfingsten, track
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17548
Wohnort: Berlin
|
HeikeHarnack schrieb: Hallo, Sudo hilft nicht, chmod +x oder a+x hilft auch nicht.
Zuerst schaut man, welche Berechtigungen gesetzt sind
Wenn der Compiler keine ausführbare Datei erstellt ist was faul, wenn man selbst nicht ausführen kann, aber root, auch. Derartiges Rumstochern ist Zeitverschwendung und sollt man sich nicht angewöhnen.
Im Dateimanager habe ich im Reiter Dateieigenschaften auch auf 'jeder darf ausführen' gestellt.
Wie standen sie denn davor?
|
lubux
Anmeldungsdatum: 21. November 2012
Beiträge: 13892
|
HeikeHarnack schrieb: Was tun?
Poste mal die Ausgabe von:
echo "int main(void) {const char msg1[] = {'H','e','l','l','o',' ','w','o','r','l','d'}; puts(msg1); return 0;}" | gcc -s -x c - && ./a.out && ls -la a.out && rm ./a.out
|
HeikeHarnack
(Themenstarter)
Anmeldungsdatum: 5. Mai 2014
Beiträge: 70
Wohnort: Meiderich (Duisburg)
|
Hallo an alle, die so schnell geantwortet haben: ich habe meine .c-Dateien auf einem Stick. (Intenso, s.u.) Tests ergaben:
heike@ACERTravelMate-420:/media/heike/INTENSO/Studium/C/U3$ echo "int main(void) {const char msg1[] = {'H','e','l','l','o',' ','w','o','r','l','d'}; puts(msg1); return 0;}" | gcc -s -x c - && ./a.out && ls -la a.out && rm ./a.out
bash: ./a.out: Keine Berechtigung
heike@ACERTravelMate-420:/media/heike/INTENSO/Studium/C/U3$ ls -l
insgesamt 5480
-rw-r--r-- 1 heike heike 5536 Mai 24 08:25 a.out
-rw-r--r-- 1 heike heike 244 Mai 7 18:22 u3.c
-rw-r--r-- 1 heike heike 1036 Mai 5 18:41 u3.o Tscha, und nu? Evtl. doch besser auf Festplatte?
Heike
|
ostcar
Ehemalige
Anmeldungsdatum: 27. Juli 2006
Beiträge: 2748
Wohnort: Leipzig
|
Das könnte der Grund sein. Probiere doch mal die Befehle von lubux in deinem Home Verzeichnis auszuführen und gebe uns zusätzlich noch die Ausgabe von:
mount
während der Stick angesteckt und eingebunden ist.
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17548
Wohnort: Berlin
|
HeikeHarnack schrieb: Hallo an alle, die so schnell geantwortet haben: ich habe meine .c-Dateien auf einem Stick. (Intenso, s.u.) Tscha, und nu? Evtl. doch besser auf Festplatte?
Ja. Sticks sind meistens mit Windows-Dateisystemen formatiert, die gar kein executable-Flag kennen. Eine tar.gz-Datei oder tar.bz2-Datei als Hülle würde funktionieren - die kann man, wenn auch nicht ohne zusätzliche Tools, auch unter Windows lesen. Beim Auspacken unter Linux bleibt aber ein executable-Flag erhalten. Ich meine mich zu erinnern, dass man unter Linux ein Archiv, das man immer wieder benutzt, als Loop-Device einbinden kann, so dass nach dem mounten des Geräts ein Verzeichnis komplett ausgepackt wird, in welches man schreibt und aus dem man liest und die Tatsache, dass es gepackt ist, ist in dem Moment völlig unsichtbar - ich habe es aber ewig nicht gemacht. Vielleicht habe ich es auch falsch in Erinnerung.
|
HeikeHarnack
(Themenstarter)
Anmeldungsdatum: 5. Mai 2014
Beiträge: 70
Wohnort: Meiderich (Duisburg)
|
Hallo Gemeinde, VIELEN Dank! Ich habe es jetzt per Festplatte versucht und siehe, es klappt! Wunder der Technik... Nun kann ich mich entspannt meinem Studium (C++ u.a.) zuwenden. Heike
|
lubux
Anmeldungsdatum: 21. November 2012
Beiträge: 13892
|
HeikeHarnack schrieb: Wunder der Technik...
... oder:
noexec Do not allow direct execution of any binaries on the mounted filesystem.
? 😉
|
Lysander
Anmeldungsdatum: 30. Juli 2008
Beiträge: 2669
Wohnort: Hamburg
|
HeikeHarnack schrieb: ich lerne gerade C bzw. C++.
Was denn nun wirklich? 😉 Laut Thread scheint es ja eher C zu sein... mein Tipp: Diese Sprachen nicht verwechseln oder gar mischen! Lehrbücher, die "C/C++" Im Titel haben oder dieses Konstrukt verwenden, am besten gleich einem sinnvollen Zweck zuführen, also z.B. als Briefbeschwerer, Monitorsockel oder Heizmaterial! 😎
|
HeikeHarnack
(Themenstarter)
Anmeldungsdatum: 5. Mai 2014
Beiträge: 70
Wohnort: Meiderich (Duisburg)
|
An Lysander:
Lysander schrieb: HeikeHarnack schrieb: ich lerne gerade C bzw. C++.
Was denn nun wirklich? 😉 Laut Thread scheint es ja eher C zu sein... mein Tipp: Diese Sprachen nicht verwechseln oder gar mischen! Lehrbücher, die "C/C++" Im Titel haben oder dieses Konstrukt verwenden, am besten gleich einem sinnvollen Zweck zuführen, also z.B. als Briefbeschwerer, Monitorsockel oder Heizmaterial! 😎
Laut Vorlesungsverzeichnis lerne ich C++, ist aber in Wirklichkeit zunächst C. Leider kann ich weder
den Professor die Räumlichkeit oder anderes
verheizen. Heike
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17548
Wohnort: Berlin
|
HeikeHarnack schrieb: Laut Vorlesungsverzeichnis lerne ich C++, ist aber in Wirklichkeit zunächst C. Leider kann ich weder
den Professor die Räumlichkeit oder anderes
verheizen. Heike
Giftmord?
|
HeikeHarnack
(Themenstarter)
Anmeldungsdatum: 5. Mai 2014
Beiträge: 70
Wohnort: Meiderich (Duisburg)
|
Hallo an alle, inzwischen gab es die Klausur dazu. Ein wesentlicher Bestandteil war dann doch C++, kam halt später im Semester dran. Obwohl ich extra die "Rule of five" gelernt habe, habe ich das in der Klausur nicht angewendet, weil das ja so nicht in der Aufgabenstellung stand.
Ihr wißt schon: Wenn man eine Methode schreibt, dann auch die anderen 4. Vorgegeben war AssignmentOperator und AssignmentMoveOperator, die mußten laut Aufgabenstellung implementiert werden, habe ich auch gemacht. Nur die anderen 3 habe ich glatt übersehen.
Wie das halt so ist bei Klausuren, sobald man raus ist, fällt einem ein, was man vergessen hat (dabei hatte ich noch jede Menge Zeit!) Heike
|