Archiv

Archive for the ‘C’ Category

filedeleter – Automatisches Löschen von Dateien

August 25, 2011 2 Kommentare

Wer schomal von Windows zu Linux umgezogen ist kennt das Problem eventuell. In der Musik oder Filmesammlung finden sich eine Menge desktop.ini-Dateien, die da eigentlich nix verloren haben und die man unter Linux auch nicht benötigt.

Dieses Phänomen hat mich dazu bewogen ein kleines Tool zu schreiben, das von einem angegebenen Verzeichnis ab rekursiv alle Ordner nach den im zweiten Programmparametern übergebenen Dateinamen sucht und die gefundene Datei löscht.

Das Tool ist in C geschrieben.

Hier eine Beispielanwendung:

– Ich möchte alle „.ini“ Files in dem Ordner „/home/fabi/test“ und den vorhandenen Unterordnern löschen.

Verzeichnis, dass noch alle *.ini-Dateien enthält:

Anzeige des Ordnerinhalts mit "tree"

Anzeige des Ordnerinhalts mit "tree"

Aufruf von filedeleter:

Aufruf filedeleter

Aufruf filedeleter - Löschen alle *.ini-Dateien in /home/fabi/test

 Achtung: Der Ordnerpfad der im ersten Parameter des Tools übergeben wird, darf nicht mit einem Slash beendet werden!

 Ordnerinhalt nach dem Aufruf von filedeleter:

Ordnerinhalt /home/fabi/test nach dem Aufruf von filedeleter

"Bereinigter" Ordner

Getestet und Programmiert habe ich das ganze unter Gentoo Linux mit 2.6.39er Kernel und gcc 4.4.5. Das ganze läuft auch unter OS X ( Snow Leopard ) und XCode 3.
Für eventuelle Schäden die durch das Programm entstehen übernehme ich keine Haftung!!!

Das Programm wird natürlich unter der GPL veröffentlicht. Für Kritik und Anregungen bin ich wie immer dankbar.

Um das Programm zu kann das beigelegte make-File verwendet werden. Download: http://dl.dropbox.com/u/2497774/FileDeleter.tar

Advertisements
Kategorien:C, Linux, Mac OS X, Programmierung, VIM Schlagwörter: , , ,

ConfigParser

Ich bin gerade dabei mir eine kleine Toolchain zu bauen.
Ein Teil davon ist ein simpler Config-File-Parser der in C++ geschrieben ist.

Er kann „einfache“ Config-Dateien wie z.B. .Xdefaults, ssh_config, etc. parsen und zeigt die Attribute mit zugehörigen Werten an.

Hier mal ein paar Beispiele:
.Xdefaults

fabi@schnecki-workstation ~/Programmierung/C_C++/ConfigParser $ ./configparser /home/fabi/.Xdefaults "#" ":" ""
Number of attributes: 11
Option: URxvt*transparent       Value: false
Option: URxvt*savelines Value: 12000
Option: URxvt*scrollBar Value: false
Option: URxvt*urlLauncher       Value: firefox
Option: URxvt*geometry  Value: 80x50
Option: URxvt*secondaryScroll   Value: true
Option: URxvt*inheritPixmap     Value: true
Option: URxvt*shading   Value: 25
Option: URxvt*font      Value: xft:Bitstream Vera Sans mono:size=9
Option: URxvt*foreground        Value: white
Option: URxvt*background        Value: black

/etc/ssh/ssh_config

fabi@schnecki-workstation ~/Programmierung/C_C++/ConfigParser $ ./configparser /etc/ssh/ssh_config "#" " " ";"
Number of attributes: 3
Option: ForwardX11      Value: yes
Option: Port    Value: 22
Option: Host    Value: * XAuthLocation /usr/bin/xauth

Das eigentliche Ziel ist nicht das Programm „configparser“, sondern die Klassen, da ich diese dann in weiteren Programmen verwenden kann.

Hier der Link zum Download: http://dl.dropbox.com/u/2497774/ConfigParser.tar

Darin ist der Source Code und ein Makefile enthalten mit dem sich das ganze übersetzen lässt.

Getestet habe ich das ganze unter Gentoo Linux 2.6.36-gentoo-r5 (Ich weiß ein Kernelupdate ist fällig ;-)) und mit GCC 4.4.5.

Also viel Spaß damit.

Für Kritik und Anregungen bin ich wie immer dankbar.

clamzwatchdog – Watchdog für *.amz-Files

clamzwatchdog ist ein „Watchdog“ der ein beliebiges Verzeichnis überwacht und sobald dort ein *.amz-File abgelegt wird die MP3-Dateien
mit Hilfe von clamz herunterlädt.
Das Programm wurde in C++ geschrieben, ist jedoch nicht objektorientiert aufgebaut und steht unter GPLv3.

Erfolgs- und Fehlermeldungen werden in das Syslog geschrieben.

Um das Programm verwenden zu können muss clamz installiert sein.

Für die sinnvolle Verwendung sollte  das Programm beim Start geladen werden, damit das gewünschte Verzeichnis überwacht wird.

 

Download:

Clamz-Alpha-01

!Es handelt sich noch um eine Alpha-Version mit wenigen Funktionen!

 

Getestet wurde clamzwatchdog unter:
Gentoo
2.6.34-gentoo-r12
gcc 4.4.4

Für Kritik und Anregungen bin ich wie immer dankbar.

Kategorien:C, Download, Linux, Uncategorized Schlagwörter: , , , ,

WinSplit – File splitting for Windows

WinSplit ist ein kleines Kommandozeilentool das dem UNIX Programm Split nachempfunden ist.
WinSplit ist in ANSI-C mit Hilfe des Visual Studio 2008 programmiert.

Gestest und entwickelt wurde das Programm unter Windows 7 (64-bit).

Mit WinSplit ist es möglich große Dateien wie z.B. *.csv- oder *.txt-Dateien in kleinere Dateien aufzuteilen.
Das Programm geht dabei Zeilenweise vor.

Aufruf des Programms:

„WinSplit Pfad\zur\Eingabedatei Pfad\zur\Ausgabedatei DateiendungAusgabedatei AnzahlZeilen“

Aufruf WinSplit

Aufruf WinSplit

Das Programm steht unter GPL V3. Über Anregungen und Krititk würde ich mich freuen.

WinSplit – Binary

WinSplit – Source

 

(g)Vim + GDB + DDD = IDE

Ich bin schon seit langer Zeit nach einer vernünftigen IDE unter Linux und bin nie so richtig fündig geworden.
Der Editor meiner Wahl, ist und bleibt, im Linux-/Unix-Umfeld Vim mit GVim als grafischen Aufsatz.
Was mir immer nur gefehlt hat war ein guter Debugger. Ich bin da ziemlich verwöhnt von Visual Studio (2008 u. 2010), dass meiner
Meinung nach einen sehr guten Debugger hat.

Ich hab begonnen mich vor ca. zwei Wochen intensiv mit GDB zu beschäftigen und muss sagen, dass das Ding echt klasse ist.
Das einzige was ein bisschen störend war, ist das ich keine GUI dafür hatt. Eine GUI ist für mich in diesem Fall einfach
angenehmer als die Shell. Obwohl es damit auch ginge.  Und nach kurzer Suche bin ich dann auf DDD gestoßen.
Die GUI ist zwar nicht mehr die neuste, dafür ist der Aufbau echt super. Das Debuggen geht echt schnell und ich bekomme
alle nötigen Infos die ich benötige.
Außerdem bietet DDD auch Funktionen um z.B. den Assembler-Code des Programms anzuzeigen, etc.

Für mich ist das ein klasse Trio….

Getestet habe ich das ganze mit C und C++.

C wieder ganz vorne

Wie man hier siehtGolem-Link

kommt mein großes Intresse für C wohl genau zur richtigen Zeit ;-)….

 

Kategorien:C, Programmierung Schlagwörter: , ,

Ein bisschen UNIX unter Windows

Für einen C/C++ Entwickler, der seine Programme auch verteilen will sind makefiles und ein vernünftiger Compiler, der auch die jeweiligen Standards wei den C99 Standard unter C unterstützen das tägliche Handwerkszeug.

Da ich unter OS X seit geraumer zeit viel mit C mache und meine Software auch hier zum Download bereit stellen möchte habe ich mir einen weg überlegt, wie ich das machen kann.

Da ich auch ab und zu am Notebook entwickle wollte ich auch dort die mir bekannten und leistungsfähigen Tools zu Verfügung haben.

Dabei bin ich über MinGW für Windows gestossen.

Mit diesen Tools habe ich den gcc (g++) für Winodows und kann alle makefiles übersetzen.

Zu finden ist das Paket hier: http://sourceforge.net/projects/mingw/files/

Die makefiles geben mir die Möglichkeit einen Editor, nämlich GVIM respektive MacVIM zu nutzen und damit unabhängig von einer Entwicklungsumgebung zu sein.
Wenn ich meine .vimrc fertig habe, werde ich sie natürlich hier posten.

Ein Plugin das ich aufjedenfall sehr gut finde, ist das c.vim plugin, zu finden hier:
http://vim.sourceforge.net/scripts/script.php?script_id=213

Kategorien:C, Mac OS X, Programmierung, VIM, Windows Schlagwörter: , ,