[c] Scope von mount tmpfs

Gast #3843889
Hallo,


ich möchte ein tmpfs laden und dort neue Dateien anlegen.

Zur Zeit geht das nicht.
1
fopen(filename, "w") // ist NULL

Das heißt ich muss tmpfs erst einmal mounten.

Die Frage ist, wo muss ich mount() ausführen, damit fopen() auf tmpfs 
zugreifen kann?
Es verwirrt mich, daß ich fopen() keinen Pointer zu meinem Filesystem 
mitgebe.

Es handelt sich hier um kein richtiges Linux-System, sondern eher eine 
BareMetal App eines eigebetteten Systems.

Ich habe also nur diese eine C-Datei.

Ist es also egal, wo ich mount() mache, oder muss das im Scope von 
fopen() sein?

Das reicht wohl nicht, oder?
1
void init(){
2
  mount("none", "tmp", "tmpfs", 0, 0);
3
}
4

5
void open(){
6
  fopen("tmp/bar");
7
}
8

9
int main(){
10
init();
11
open();
12
}
olpo schrieb:
> Es handelt sich hier um kein richtiges Linux-System, sondern eher eine
> BareMetal App eines eigebetteten Systems.

Bei der Fehlerbeschreibung kein Wunder, wenn es nicht klappt....

Was hast du denn jetzt?
Überhaupt ein Betriebssystem? Ein bißchen Linux, aber eher keines?
Wenn nein: welche Umgebung hast du sonst? Kennt die sowas wie ein 
Dateisysteme?
Gast
Wie gesagt, es ist minimal OS (BareMetal), das halt schon sowas wie 
fopen() und mount() kann. Deshalb habe ich das erwähnt. Aber es ist kein 
Linux das von sich aus ein Dateisystem hat. Ich muss da ein tmpfs 
rein-mounten().

Nur, wie mountet man? Ist das in einem C-Programm möglich, so wie oben 
angedeutet? Oder muss die unten liegende Umgebung erst mounten und kann 
dann die App starten?
olpo schrieb:
> Wie gesagt, es ist minimal OS (BareMetal),

Was auch immer das heißt.

> Nur, wie mountet man? Ist das in einem C-Programm möglich, so wie oben
> angedeutet? Oder muss die unten liegende Umgebung erst mounten und kann
> dann die App starten?

Woher soll denn hier jemand wissen, wie das unter dem unbekannten 
"minimal OS" gemacht wird?
Ach so, "BareMetal" soll nicht die Beschreibung des OS sein, sondern der 
Name.

Wenn ich allerdings das lese:

> BareMetal is a 64-bit OS for x86-64 based computers. The OS is written
> entirely in Assembly while applications can be written in Assembly or
> C/C++.

frage ich mich irgendwie, wozu man sowas braucht.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 12 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.