C-Sourcen

AppName und die bash


Wenn Du Deine Applikation jemals öffnen willst, nenne sie niemals "test". Denn test ist ein Schlüsselwort der bash. Wird also "test" auf der Kommandozeile ohne Parameterangabe aufgerufen, dann aktiviert die bash dieses test. Doch es wird nichts geschehen, da test ohne Parameterübergabe nichts tun kann. Willst Du Dein Programm aber wenigstens einmal sehen, dann ruf es mit der vollen Pfadangabe auf. Spätestens danach solltest Du es umbenennen.


Dateien für den Compiler verfügbar machen


Wer sein Programm in mehreren Dateien (*.c- und *.h-files...) aufbaut, benötigt eine Möglichkeit, die Projekt-Dateien dem Compiler bekannt zu machen. Dies geschieht über ein Make-File. Hier nun ein kleines Beispiel für den Aufbau eines Make-Files:

      PROG = programmname
      OBJS = main.o function.o
      LIBS = -lc
#includeDIR = -I/usr/#include -I.
    LIBDIR = -L/usr/lib
        CC = gcc
    LINKER = gcc
    CFLAGS = -Wall -O2
#Die Einrückungen mit TABULATOR
.c.o:
    $(CC) $< $(CFLAGS) $(#includeDIR) -c -o $@
all: $(PROG)
$(PROG): $(OBJS)
    $(LINKER) $(OBJS) $(LIBDIR) $(LIBS) -o $(PROG)
clean:
    rm *.o *~ $(PROG)

Nach der Erstellung des Make-Files ist

user@sonne> cd ProjektVerzeichnis
user@sonne> make

auszuführen.


Starten von Shell-Skripten


Es ist unter Linux nicht möglich, Skripten SUID laufen zu lassen, da dies ein Sicherheitsloch darstellen würde. Die Lösung: Ihr könnt das Skript über ein C-Programm starten:

#include <stdio.h>
#define PROGPATH   "/usr/local/bin/perl"
#define PROG       "perl"
int main (void)
{
  execl (PROGPATH, PROG, "/usr/local/bin/MEINSCRIPT", NULL);
  fprintf (stderr, "exec %s failed\n");
}
Autor: Omega-X