Ltrace und Strace

BasicC

Erfahrenes Mitglied
Ich möchte ein Makefile erstellen in C , die soll die Funktionsweise von

/bin/sync
/bin/whoami
beinhalten.
Die Funktion soll mittels ltrace und strace dargestellt werden.

ehrlich habe ich keine Ansätze wie ich anfangen soll.
normal im Terminal ltrace und strace kann ich nutzen und auch die Funktion sehen, aber wie kriege ich es in ein Makefile hin
muss ich zwei verschiedene shell Dateien erstellen worin ich die Funktion von den Systemcalls implementiere oder liege ich da falsch ?
 

cwriter

Erfahrenes Mitglied
Ich möchte ein Makefile erstellen in C , die soll die Funktionsweise von
? Makefile in C?
Willst du ein C-Programm schreiben, das Makefiles generiert?
Wie willst du /bin/sync denn als Funktion beinhalten?
muss ich zwei verschiedene shell Dateien erstellen worin ich die Funktion von den Systemcalls implementiere oder liege ich da falsch ?
Was meinst du mit "shell Dateien"? Bashscripts? Wie willst du mit Bashscripts denn einen Systemcall implementieren?

Und was haben ltrace und strace mit "Funktion darstellen" zu tun?

Gruss
cwriter
 

BasicC

Erfahrenes Mitglied
? Makefile in C?
Willst du ein C-Programm schreiben, das Makefiles generiert?
Wie willst du /bin/sync denn als Funktion beinhalten?

Ich soll versuchen mittels ltrace und strace herausfinden wie die Programme
a) /bin/sync,
b) /bin/whoami,
funktionieren.
Ich soll die Programme dann in C reimplementieren. Meine Implementation
muss keine Kommandozeilenparameter unterstützen, aber die Funktionsweise muss
analog zu dem Orginal sein.

Und dazu soll ich ein Makefile erstellen mit dem sich meine Programme bauen lassen.
 

cwriter

Erfahrenes Mitglied
Und dazu soll ich ein Makefile erstellen mit dem sich meine Programme bauen lassen.
Also ist das Makefile unabhängig von ltrace und strace? Das macht schon mehr Sinn.

Und deine Frage ist jetzt, wie man Makefiles schreibt?

Vereinfacht gesagt:
Code:
<target>: <requires>
        <commands>

Also ein Beispiel:
Code:
hello_world: main.o
        gcc -o hello_world main.o

main.o:
        gcc -c main.cpp
Die Einrückungen müssen Tabs sein!

Aufgerufen mit "make hello_world" oder "make" (nimmt das erste Target).
Um hello_world zu bauen, wird main.o benötigt. Also schaut make nach dem Ziel main.o und führt den Command aus, da keine Abhängigkeiten bestehen. Dann hat hello_world alle requirements, und führt gcc als Linker aus, und erstellt hello_world.

Meintest du das?

Gruss
cwriter