Re: [PUG] Kernel backen

2011-06-14 Diskussionsfäden lano

Am 13.06.2011 12:15, schrieb Denny Schierz:

Am 13.06.2011 um 11:31 schrieb Veit:


Aber nicht mit irgendwelchen graphischen Tools...


es gibt grafische tools dafür? wow ;-)

cd /usr/src/linux  make menuconfig



Er sachte doch keine grafischen Tools, da kommst du dann mit menuconfig.
Wenn das ma nicht grafisch ist. Also das war wohl nix :)

make config wäre es gewesen.

Ok, ich seh ein, das mag für beginner recht umständlich sein, aber er 
hat danach gefragt ;)


-Sven-
--

PUG - Penguin User Group Wiesbaden - http://www.pug.org


Re: [PUG] HDD Passwort reseten

2011-05-16 Diskussionsfäden lano

Am 15.05.2011 22:45, schrieb Denny Schierz:

hi,

Am 15.05.2011 um 19:43 schrieb Stephan Schaffner:

   

Wie gesagt, das NB ist verkauft und ich wollte gerade die Festplatte schreddern 
als mir einviel, das hat ein HDD Passwort. Weis jemand einen Weg wie ich das PW 
weg bekomme? Daten sind egal ;)
 

wenn es das per ATA gesetzte Kennwort ist, hilft nur noch der Hersteller.
   

Bruteforce mit #hdparm --security-help oder
http://www.hddunlock.com/ (ist allerdings für Windoof).

-Sven-
--

PUG - Penguin User Group Wiesbaden - http://www.pug.org


Re: [PUG] linux als Router?

2011-04-27 Diskussionsfäden lano

Am 27.04.2011 05:44, schrieb Stephan Schaffner:

Gut das ich vor einer Woche oder wann meinen Server aufgesetzt habe ;)

Welche Netzerkkarten sind denn drinnen und wie sind Sie verbunden 
(eth0: Ethernet, eth1 LAN usw.)?
In meinem Wortschatz ist Ethernet und LAN quasi das selbe, wobei ein LAN 
nicht unbedingt ein Ethernet sein muss.

Aber um deiner Frage gerecht zu werden. Verbaut sind zwei
Realtek Semiconductor Co., Ltd. RTL-8169 Gigabit Ethernet Karten.
eth0 ist verbunden mit einem switch, dieser ist ebenfalls mit einem 
switch verbunden, der wiederum ist mit noch einem switch verbunden der 
dann mit einem Linksys WRT54GL verbunden ist auf dem ddwrt v24 im 
Gateway Modus arbeitet.
Dieser ist per WLan mit einem zweiten Linksys WRT54GL verbunden auf dem 
ebenfalls ddwrt v24 läuft, der ist wiederum mit einem DSL-Modem 
verbunden und baut auch die WAN Verbindung auf.

eth1 ist nur mit dem Internetradio verbunden, einem IR-715-2 von muvid.


Unter http://wiki.ubuntuusers.de/router gibt es die Anleitung für Ubuntu
Google konnt ich auch noch grade so bedienen, was ich da gefunden habe 
deckte sich aber nicht mit meinen stark verblassten Erinnerungen.
Ich bin auch der Meinung das man iptables nicht benutzen sollte wenn es 
auch einfacher geht. Naja vllt bin ich dafür schon zu alt, vor 15 Jahren 
war das alles anders :)


so denn -Sven-
--

PUG - Penguin User Group Wiesbaden - http://www.pug.org


Re: [PUG] linux als Router?

2011-04-27 Diskussionsfäden lano

Am 27.04.2011 10:10, schrieb Klaus Klein:


 Am 27.04.2011 01:58, schrieb lano:

 Moin,

 Ich hab ein Internetradio welches ich gern ausschnüffeln würde, diesem
 habe ich die IP 192.168.2.20 verpasst. Angeklemmt ist es am PC (eth1) IP
 192.168.2.10.
 Der PC eth0 IP 192.168.1.10 ist mit einem NAT IP 192.168.1.1 verbunden.

 Was muss ich jetzt exakt für Routen hinzufügen? Sorry aber ich hab
 wirklich keine Ahnung mehr.


 Ich gehe mal davon aus das Du mit einem NAT einen DSL-Router oder
 ähnlichen meinst.

Genau. Ein ddwrt der per WLan mit einem zweiten ddwrt verbunden ist, der
dann die Internetverbindung bereitstellt.


 Das Routing auf dem Debian-PC ist mit echo 1  ... aktiviert und die
 angeschlossenen Netzwerke kennt er auch.

Das war das ein zigste was ich noch wirklich wusste.
Dann hab ich in Erinnerung das irgendwas mit #route add bla bla bla war.


 Für den Rest gibt es jetzt zwei Möglichkeiten:

 Möglichkeit 1)
 Der DSL-Router muss mitgeteilt bekommen dass er das Netzwerk
 192.168.2.0 über den PC 192.168.1.10 erreichen kann.
 D.h. Eintrag einer statischen Route im  DSL-Router

OK, Route kennt er nu, und zu meiner Überraschung funktioniert es.
Hab gedacht der PC müsste auch noch wissen wo er was hinschieben muss.


 Möglichkeit 2)

Fällt weg, Möglichkeit 1 tut seinen Dienst.


 ACHTUNG!!
 In beiden Fällen arbeitet der Debian-PC 'nur' als Router und NICHT als
 Firewall!!

Firewall ist was für Angsthasen :)
Eine läuft auf dem Router der die Internetverbindung aufbaut, eine
zweite auf dem Gateway der mit dem Router verbunden ist.
Auf noch eine Firewall und dann noch auf meinem PC verzichte ich gern.
Unter Einhaltung der Hacker-Ethik dürft ihr gern versuchen an meinen PC
zu kommen, der Gewinner bekommt ne Kiste Bier wenn er mir verrät wie er
es geschafft hat.

Erst mal Danke für die Erklärung -Sven-

--

PUG - Penguin User Group Wiesbaden - http://www.pug.org


[PUG] linux als Router?

2011-04-26 Diskussionsfäden lano

Moin,

Nach dem es schon zig Jahre her ist das ich zu Ausbildungszeiten mal 
Linux als Router verwendet habe, komme ich grade in die verlegenheit das 
mein Debian jetzt mal wieder routen soll. Ich musste allerdings 
feststellen das ich nicht mehr weis wie das geht, alte unterlagen finde 
ich auch nicht mehr.
Ich weis noch das man routen eintragen muss und ein echo 1  
/proc/sys/net/ipv4/ip_forward absetzen muss damit es funktioniert.

Mit den Routen komm ich aber nicht mehr klar.

Ich hab ein Internetradio welches ich gern ausschnüffeln würde, diesem 
habe ich die IP 192.168.2.20 verpasst. Angeklemmt ist es am PC (eth1) IP 
192.168.2.10.

Der PC eth0 IP 192.168.1.10 ist mit einem NAT IP 192.168.1.1 verbunden.

Was muss ich jetzt exakt für Routen hinzufügen? Sorry aber ich hab 
wirklich keine Ahnung mehr.



so dankend -Sven-


--

PUG - Penguin User Group Wiesbaden - http://www.pug.org


Re: [PUG] gcc -O1 geht schneller als -O2 Optimierung

2010-11-26 Diskussionsfäden lano

Denny Schierz schrieb:

hi,

von einem Professor habe ich eine Mail erhalten, in der er sagt, dass
ein Programm, welches mittels -O2 kompiliert wurde, mehr Zeit für die
Abarbeitung der Datensätze benötigt, als ein Programm welches mittels
dies mit -O1  (also ohne Optimierung) übersetzt wurde. Er bezieht das
auf ein Problem, was wohl mit Vmware selbst zusammenhängen muss.

  

-O1 heißt nicht das keine Optimierung benutzt wird.

bei -O2 werden nur Optimierungen eingeschaltet die mehr Geschwindigkeit 
bringen aber den Speicherverbrauch nicht erhöhen.



Was hat gcc denn mit Vmware zutun ?


-Sven-
--

PUG - Penguin User Group Wiesbaden - http://www.pug.org


Re: [PUG] gcc -O1 geht schneller als -O2 Optimierung

2010-11-26 Diskussionsfäden lano

Denny Schierz schrieb:

hi,

ich danke schonmal für die Antworten. Aber ich sollte noch etwas dazu
erwähnen:

Das Programm ist von einem Informatiker mit Mathematik als Schwerpunkt
geschrieben worden. 
Die Aufgabe des Programms ist es gerade, den Unterschied zwischen -O1
und -O2 aufzuzeigen. 

Eine schöne option um zu sehn was gcc aus dem code macht ist -S

-Sven-
--

PUG - Penguin User Group Wiesbaden - http://www.pug.org


Re: [PUG] ATI Radeon HD3850 agp installieren...

2010-11-21 Diskussionsfäden lano

Thomas Drillich schrieb:

ich habe bei mir den 2.6.36 kernel am laufen,
dann kannst du den Anhang nach /lib/firmware/radeon/ kopieren.

  

cool, werd ich ma versuchen.

bei mir hat er es gebaut.
Bei Deiner kernel config sollte
CONFIG_EXTRA_FIRMWARE=R600_rlc.bin
CONFIG_EXTRA_FIRMWARE_DIR=firmware

dann sollte make -C /usr/src/linux firmware das ding auch erzeugen

  

Da bekomm ich dann ein:

MK_FW   firmware/R600_rlc.bin.gen.S
make[1]: *** Keine Regel vorhanden, um das Target »firmware/R600_rlc.bin«,
 benötigt von »firmware/R600_rlc.bin.gen.o«, zu erstellen.  Schluss.
make: *** [firmware] Fehler 2

-Sven-
--

PUG - Penguin User Group Wiesbaden - http://www.pug.org


Re: [PUG] ATI Radeon HD3850 agp installieren...

2010-11-20 Diskussionsfäden lano

Thomas Drillich schrieb:

Hi Sven,

was sagt Deine kernel/.config und die device section in /etc/X11

Ich habe hier eine
 ATI Technologies Inc RS880 [Radeon HD 4200] 

die treibt zwei Lcd's inklusive composite, opengl und 
sound via hdmi.



Meine kernel/.config sagt zu Radeon?

  

Das sagt meine config auch...

Bild bleibt trotzdem schwarz.
Ich hab mal ein Bild vom Bootvorgang gemacht, bis zu der stelle läuft 
es, dann bleibt es ca 40 sec stehn schaltet auf schwarz und bleibt so.


Hier mal das Bild, vllt hilft es. 
http://www.lan4lano.net/bilder/vga/201120101050.jpg



-Sven-

--

PUG - Penguin User Group Wiesbaden - http://www.pug.org


Re: [PUG] ATI Radeon HD3850 agp installieren...

2010-11-20 Diskussionsfäden lano

Thomas Drillich schrieb:

Am Samstag 20 November 2010, 21:42:16 schrieb Thorsten Gowik:
  

Am 20.11.10 19:04, schrieb lano:


Das sagt meine config auch...

Bild bleibt trotzdem schwarz.
Ich hab mal ein Bild vom Bootvorgang gemacht, bis zu der stelle läuft
es, dann bleibt es ca 40 sec stehn schaltet auf schwarz und bleibt so.

Hier mal das Bild, vllt hilft es.
http://www.lan4lano.net/bilder/vga/201120101050.jpg
  

Ganz klar das Problem liegt am Kontoauszug und den sträflich abseits
liegenden Papers von OCB unter dem Bildschirm *SCNR* ;-)

Was sagt den das Logfile von Xorg an der Stelle?

Gruß
Thorsten



was sagt den 
rootgrep -i firmware /var/log/syslog
 
vielleicht bekommt er die für die rv670 nötige firmware nicht geladen
  

Ja die bekommt er nicht geladen, nur wie bring ich ihm das bei?

lano:/home/lano# grep -i firmware /var/log/syslog
Nov 20 18:13:10 localhost kernel: r600_cp: Failed to load firmware 
radeon/R600_rlc.bin
Nov 20 18:13:10 localhost kernel: [drm:r600_startup] *ERROR* Failed to 
load firmware!


reicht ein #/usr/src/linux make firmware  make firmware install nicht aus?

es gibt ein Verzeichnis /lib/firmware/radeon
dort finde ich einige dateien, allerdings nicht die r600_rlc.bin, bei 
mir heißen die verdächtigen

R600_me.bin und R600_pfp.bin

-Sven-
--

PUG - Penguin User Group Wiesbaden - http://www.pug.org


Re: [PUG] ATI Radeon HD3850 agp installieren...

2010-11-20 Diskussionsfäden lano

Thorsten Gowik schrieb:

Ganz klar das Problem liegt am Kontoauszug und den sträflich abseits
liegenden Papers von OCB unter dem Bildschirm *SCNR* ;-)
  

Das ist kein Kontoauszug, das ist meine TAN-Liste.
Ich habs auch schon mit und ohne OCBs versucht, keine veränderung :)

Was sagt den das Logfile von Xorg an der Stelle?

  

Hmm...

(WW) RADEON(0): [agp] AGP not available
(EE) RADEON(0): [agp] AGP failed to initialize. Disabling the DRI.

-Sven-
--

PUG - Penguin User Group Wiesbaden - http://www.pug.org


[PUG] ATI Radeon HD3850 agp installieren...

2010-11-10 Diskussionsfäden lano

Moin,

jemand schonmal erfolgreich so eine Karte installiert ?
Ich hab im Kernel ATI Radeon display support gewählt, die Karte wird 
auch beim starten erkannt.
Problem dabei ist das er versucht den Microcode zu laden, und das 
schafft er wohl nicht, jedenfalls wird dann der Bildschirm dunkel und 
weder console noch kde zeigen auch nur irgendwas.
Also hab ich make firmware und make firmware-install ausgeführt. 
Brachte allerdings keine verbesserung.


Jetzt frag ich mich, passt das mit dem Kernel so?
Wo bekomm ich die Firmware her?
und was muss ich in der xorg.conf anpassen.

Meine alte Karte war eine ATI Radeon 9200, kann mich aber nicht an 
irgend welche firmware geschichten erinnern. google half mir auch nicht 
weiter.


Kann da jemand helfen? hab von grafikkarten überhaupt kein plan, will 
aber jetzt auch alle vorzüge der Neuen Grafikkarte nutzen. ok sie ist 
von nem Kumpel, also nicht nagel neu, aber für mich ist es die beste 
karte die ich bisher hatte :) .
Nochwas, da steht AGP 8x auf der Karte, ich weis garnicht ob mein agp 
8fach macht,

ich glaub nur 4x, würde die Karte dann trotzdem funktionieren nur langsamer?

vielen dank -Sven-
--

PUG - Penguin User Group Wiesbaden - http://www.pug.org


Re: [PUG] OT: Verbote wegen Amoklauf

2010-09-24 Diskussionsfäden lano

Klaus Klein schrieb:

Man das war hart.
Für so ungefähr 1,0025 sec. konnte ich mich davon zurückhalten auf den 
'Antwort'-Knopf zu klicken. :-)


Nichtdestotrotz plädiere ich dafür 'lano' zum Finanzminister 
ehrenhalber zu ernennen. ;-)


100.000.000.000 : 80.000.000 = 1.250.000

Bei mir kommt da irgendwie immer 1.250 raus. 8-/

Da siehste ma wie das in der Politik so läuft, vor lauter Nullen setzen 
die letzten Fähigkeiten aus, das scheint auch die Bedienung des 
Taschenrechners zu betreffen :)

Oder anders gesagt, der Stasi-roller hätte vermutlich genauso gerechnet ;)

Gruß,
Klaus




-Sven-

--

PUG - Penguin User Group Wiesbaden - http://www.pug.org


Re: [PUG] OT: Verbote wegen Amoklauf

2010-09-22 Diskussionsfäden lano

René F. Franke schrieb:

Am Wed, 22 Sep 2010 04:48:51 +0200
schrieb lano mail4l...@web.de:

  
Statistisch gesehen essen übringens 50 % der Bankräuber Brötchen oder

Brot zum Frühstück. Man sollte über ein Bäckereiverbot nachdenken; als
Finanzkrisenprävention.

  

Bankraub interessiert doch niemanden, die sind doch versichert und solange
wir Banken wie die Hypo Real Estate mit 100 Milliarden Euro sponsern, 
kann ich auch gut verstehen das sich manche ihr Geld einfach nur zurück 
holen wollen, bei 80 Millionen im Land hätte ja jeder anspruch auf 1,25 
Millionen, und wie viele Millionäre überfallen Banken ? Richtig, null, 
also eine völlige fehl Investition, zumindest wenn man Bankraub 
präventiv bekämpfen wollen würde ;)


-Sven-
--

PUG - Penguin User Group Wiesbaden - http://www.pug.org


Re: [PUG] OT: Verbote wegen Amoklauf

2010-09-21 Diskussionsfäden lano

Silvério Santos schrieb:

Hi,

es wird gerade so viel vom Amoklauf in Lörrach berichtet,...

Ich habe versucht den Berichten aus dem weg zu gehn, mit mäßigem Erfolg.

Relativ kurz nach der Tat hieß es:
Frau schießt mit Maschinenpistole in Krankenhaus um sich

Da hab ich noch gedacht ist ja hart, wie kommt die an eine 
Maschinenpistole, denn vollautomatische Waffen fallen ja unters 
Kriegswaffenkontrollgesetz, sind also im Handel einfach nicht zu bekommen.


Bei irgendeinem Beitrag heute hieß es dann,
Die Frau war vor 15 Jahren mal im Schützenverein und nach heute 
geltendem Waffengesetzt hätte sie die Waffe gar nicht mehr besitzen dürfen.


Da hab ich gedacht, sind die doof, warum erzählen die erst was von einer 
Maschinenpistole, die Frau war ja nun schon erschossen und deren Waffe 
gefunden, und so schwer sind die Dinger ja auch nicht zu unterscheiden. 
Also hab ich mir gedacht, Maschinenpistole klingt einfach spektakulärer, 
als ob so eine Tat nicht schon schlimm genug wäre setzten die nochmal 
ein drauf.


Ich für meinen Teil Glaube den Medien genau soviel wie den Politikern, 
nämlich nix.


Interessant fand ich eine Grafik die bei RTL gezeigt wurde. Da wurden 4 
Faktoren gezeigt die, laut psychodoktorin, dazu führen das die Menschen 
die solche Taten begehen in eine stress situation gelangen aus der sie 
keinen ausweg mehr finden was dann zu solchen taten führt.
bis auf eins davon beziehungs probleme treffen alle anderen auf jeden 
Harz4 empfänger zu.

Toll dacht ich mir jetzt wird die Armut verboten :)
Ich vermute aber mal das die Frau doch heimlich Killerspiele gespielt 
hat, die Polizei hat nur noch nicht ihren Computer ausgewertet ;)


so denn -Sven-
--

PUG - Penguin User Group Wiesbaden - http://www.pug.org


Re: [PUG] Netzteil testen

2010-09-13 Diskussionsfäden lano

Klaus Klein schrieb:

Am 12.09.2010 12:03, schrieb Hartwig Atrops:


Hier graust dem Elektriker in mir.




 hier graust dem Schreiber in mir. :-)

Ich dachte eigentlich das meine Aussage

Eigentlich macht es nur Sinn das NT unter Belastung zu testen


Moin,
So hab ich das auch verstanden, aber...

da graust dem Elektriker in mir.

denn, was macht es für einen sinn das Board, was ja vermutlich als 
defekt eingestuft wird, nochmals unter Strom zu setzen.
Wenn er es völlig zerstören möchte dann OK, aber schrieb er nicht schon 
was von geruch.
So kann er doch womöglich zusehn wie die einzelnen Baugruppen nach und 
nach auch noch in mitleidenschaft gezogen werden oder halt gleich aufglühen.
Mal für den Fall das irgendwelche Spannungsbegrenzer durch sind, dann 
schießt er jetzt bei jedem weiteren versuch immer ordendlich saft in 
gegenen die das beim besten willen nicht ab können und das ganze mit nem 
PC Netzteil was ja nun auch ordentlich Power hat.

Mal grad auf meins geschaut...
+3,3V bringt allein schon 20 Ampere
+5V macht 25

Ne normale Glühbirne (ja ich weis, gibt kein Leuchtobst) hat 60 Watt, 
und wir wissen ja alle wie schön die Leuchten ;)


-Sven-


--

PUG - Penguin User Group Wiesbaden - http://www.pug.org


Re: [PUG] Netzteil testen

2010-09-13 Diskussionsfäden lano

Veit schrieb:

Hallo Leute,
vielen Dank fuer eure Ratschlaege!

Aber alle meine Elkos sind iO.
Da das Netzteil sofort wieder Abschaltet sobald ich den Einschaltknopf
druecke, vermute ich mal, dass irgendwo ein Kurzschluss ist.
Aber wie koennte ich den finden???

Hat dazu jemad eine Idee?

  
Glaubst du das die IO sind oder weist du das, nicht jeder defekte wölbt 
sich, allein durch sichtprüfung ist da nicht viel zu machen.


Du erklärst das Netzteil für funktionstüchtig, ja ?
Hast du es schonmal unter last versucht?
bei der +12V leitung könntest du zB ne glühbirne vom auto dranklemmen.
für die 5V und 3,3V fällt mir grad auf die schnelle nichts ein.
Ich würde mir eine Brücke zwischen stecker und mainboard buchse basteln, 
und dort eine glühbirne einbauen, zb in die 12V leitung.
Macht das Board dann einen kurzen bei 12V würde die glühbirne voll 
aufleuchten, und das board nicht allzu schädigen.

Hast du das Board denn trocken gelegt? cpu runter, ram raus, hdd ab usw?
ggf. springt das board garnicht an ohne cpu, früher™ pipsten die borads 
dann, wie das heute ist weis ich nicht.


vllt hast du ja noch ein altes board rumligen und könntest das 
dranklemmen um zu sehn ob das netzteil da auch wieder ausgeht.


Was hast du denn für möglichkeiten zum testen, Multimeter zur Hand? Oszi 
vorhanden ?

Regelbares Netzteil?

-Sven-

--

PUG - Penguin User Group Wiesbaden - http://www.pug.org


Re: [PUG] Suche USB zu RS232 Adapter

2010-09-13 Diskussionsfäden lano

Bernhard Guillon schrieb:

On 29.08.2010 11:39, Bernhard Guillon wrote:


Ja, ich brauche das für den Laptop. Ich habe mittlerweile den Adapter 
von Reichelt bestellt. Ich sage bescheid wenn der funktioniert.




So ich wollte ja schreiben ob der Adapter funktioniert oder nicht. 
Nach langen suchen habe ich nun endlich eine Adapter gefunden der 
wirklich funktioniert :) Der FTDI Chip ist super! Hier noch mal die 
genaue Bezeichung von Reichelt Digitus DA-70156.



Dann sollten also die dinger mit FTDI / FT232RL chipsatz funktionieren...
http://www.ftdichip.com/Drivers/VCP.htm


-Sven-
--

PUG - Penguin User Group Wiesbaden - http://www.pug.org


Re: [PUG] OT: c Programmierung für ganz anfängl iche Anfänger

2010-09-12 Diskussionsfäden lano

Bernhard Guillon schrieb:

On 31.08.2010 12:59, lano wrote:


Zum Schluss, punkte 3 und 4, musste ich noch recht kämpfen, denn 
einen string zusammensetzen ist in c anscheint wieder was ganz 
anderes als in perl.

mit url = server + datei; funktioniert es jedenfalls nicht.
ich bewerkstellige das nun so:

char url[300];
strcpy(url, quotenpage);
strcat(url, ?user=);
strcat(url, user);
strcat(url, channel=);
strcat(url, channel);


Ja weil C keine Strings kennt. Wenn du + bei Pointern verwendest 
rechnest du Adressen zusammen. Warscheinlich kommt dabei keine 
brauchbare heraus :)


Du solltest den Speicher hier umbedingt ausrechnen und mit malloc 
reservieren oder aber überprüfen ob der Puffer groß genug ist um beide 
Strings aufzunehmen. Wenn die beiden Strings zusammen größer als 300 
werden hast du sonst einen Buffer Overflow. strnFOO ist dafür besser 
geeignet, da z.B. strcpy einfach so lange in den Speicher schreibt bis 
ein Terminierungszeichen \0 kommt strncpy aber nur maximal so lange 
wie du angibst.

Ich hab einfach mal 300 angegeben damits nicht zum overflow kommt, muss
ich noch anpassen,
300 wirds nie, ohne gezählt zu haben schätz ich eher so auf 50

Libcurl ist zwar schon ein bisschen größer als alles selber zu 
schreiben aber dafür sollte es machen was du willst. Du kannst es 
statisch linken dann hast du es beim cross compiling einfacher. Was 
für eine Toolchain verwendest du für die Dreambox? Das mit dem wget 
ist sonst auch nicht so schlimm.



Toolchain ? keine ahnung, ich hab auch ne Dbox keine dreambox.
ich hab mir nen script gebastelt was mir alles erstellt was ich brauche.
Da werden die sourcen gepatcht und meine tools und plugins mit
eingebaut, sobald die buildumgebeung steht kann ich dann einfach im cdk
verzeichniss mit make mein tool/plugin name kompilieren, das find ich
schon recht einfach.

-Sven-

PS: bisschen verspätet jetzt die Antwort, erster versuch war mit ner 
anderen email addy ;)

--

PUG - Penguin User Group Wiesbaden - http://www.pug.org


Re: [PUG] OT: Wie war das noch mit variablen ?

2010-09-12 Diskussionsfäden lano

Moin,
ich häng mal wieder fest, seltsamer weise immer da wo ich eigentlich 
denke das es doch einfach sein müsste. zum programm: es holt einige 
daten aus einer datenbank unter anderem eine id, diese id ist in einer 
anderen tabelle (der selben datenbank) einem programm namen zugeordnet. 
aber seht selbst:


#include mysql/mysql.h
#include stdio.h
#include string.h

int main() {

   MYSQL mysql;
   MYSQL_RES *res;
   MYSQL_RES *res2;
   MYSQL_ROW row;
   MYSQL_ROW row2;

   char query[200];
   char query2[200];
   char channel_name;

   mysql_init(mysql);
   
mysql_real_connect(mysql,localhost,user,passwd,datenbank,0,NULL,0);


   sprintf(query,SELECT programm, count(DISTINCT user)AS anzahl_user 
FROM daten WHERE datum like '20100913' AND zeit like '' GROUP BY 
programm ORDER BY anzahl_user LIMIT 1,15 );

   mysql_real_query(mysql,query,(unsigned int)strlen(query));
   res = mysql_use_result(mysql);

   while(row = mysql_fetch_row(res)) {

   sprintf(query2,SELECT channel_name FROM channels WHERE pid LIKE 
'%s', row[0]);

   mysql_real_query(mysql,query2,(unsigned int)strlen(query2));
   res2 = mysql_use_result(mysql);

   while(row2 = mysql_fetch_row(res2)) {

/* und hier weis ich nicht weiter, das was auskommentiert ist waren 
einige meiner versuche */


   //strcpy(channel_name, row2[0]);
   //channel_name = row2[0];
   strncpy(channel_name, row2[0], 5);

   }

/* so soll es dann ausgegeben werden, es endet aber mit einem 
Speicherzugriffsfehler */


   printf(%s:%s, ,channel_name,row[1]);
   //printf(%s:%s, ,row2[0],row[1]);
   channel_name = ;
   }
   mysql_free_result(res);
   mysql_free_result(res2);

   return 0;
}



Die 2. while schleife könnte man sich sparen, es wird nur ein ergebniss 
gefunden.
Ich vermute mal das es wieder was mit den variablen zu tun hat die c ja 
nicht kennt ;)
Ich sach mal akustisch hab ich das wohl verstanden aber bei der 
umsetzung scheints zu hapern, jedenfalls ist es nen gefühl von mir.



Nochmal ne 2. frage:
beim kompilieren spuckt gcc des öfteren mal:
warning: assignment makes integer from pointer without a cast
aus.
was hat denn das zu bedeuten? bei einem anderen progämmchen bekomm ich 
auch so eine warung, trotzdem funktioniert es wie es soll.



-Sven-
--

PUG - Penguin User Group Wiesbaden - http://www.pug.org


Re: [PUG] OT: c Programmierung für ganz anfängl iche Anfänger

2010-08-31 Diskussionsfäden lano

Laurence Tonke schrieb:

Hi Lano,

schade dass ich deine Mails erst jetzt gesehen habe. Schau mal in
unserem Wiki nach:
http://www.pug.org/mediawiki/index.php/Einf%C3%BChrung_in_die_Netzwerkprogrammierung

Zu deiner Aufgabe:
  

Eigendlich geht es insgesamt nur darum
1. eine datei vom einem http-server laden
2. das was in der datei steht in eine variable stecken
2. die mac in eine variable bekommen
3. daraus eine url basteln
4. die url an den http-server senden



Den 2. Punkt 2 (;-)) hast du ja jetzt. Punkt 1 hänge ich dir hier dran
und für die Punkte 3 und 4 müssten wir wissen wie die URL aussehen soll.

Gruß
Laurence
  

Moin,
mittlerweile hab ich alle Punkte zusammen. Es funktioniert alles so wie 
es soll.
Ist ja lieb gemeint, nur ist der womögliche Lerneffekt  bei nem 
kompletten  code gleich null, bzw
schult es womöglich nur die copy n past funktion ;) Die beherrsche ich 
allerdings schon seit Jahren in vollendeter Perfektion :)


Zum Schluss, punkte 3 und 4, musste ich noch recht kämpfen, denn einen 
string zusammensetzen ist in c anscheint wieder was ganz anderes als in 
perl.

mit url = server + datei; funktioniert es jedenfalls nicht.
ich bewerkstellige das nun so:

char url[300];
strcpy(url, quotenpage);
strcat(url, ?user=);
strcat(url, user);
strcat(url, channel=);
strcat(url, channel);


jetzt müssen nur noch einige feinheiten rein, da bin ich aber erstmal am 
überlegen wie es am cleversten wäre.
die datei vom server holen und die url an den server senden mache ich 
mit ein und der selben funktion.


HTTP_downloadFile( quotenserver, 80, url, /dev/null, 0, 1);


die Funktion macht im Moment allerdings nix anderes als wget mit den 
ensprechenden parametern aufzurufen. Interessant wäre es ob es zb. mit 
deiner Funktion Ressourcen schonender wäre.

(im gegensatz zum shell script frist das c progämmchen so gut wie nix)
Allerdings wollt ich
a) weder das rad ständig neu erfinden
b) sollte das programm so klein wie möglich sein, mir stehen nur 556kb 
flash zur verfügung, von denen ich möglichst so wenig wie möglich 
benutzen sollte.

im moment ist das programm ca 13 kb groß gestiped sinds nur noch 5,8kb :)


Werd mich jetzt erstmal im buchladen einnisten und schaun ob ich da ne 
passende Lektüre für mich finde.


so denn -Sven-
--

PUG - Penguin User Group Wiesbaden - http://www.pug.org


Re: [PUG] OT: c Programmierung für ganz anfängl iche Anfänger

2010-08-31 Diskussionsfäden lano

Markus Wolf schrieb:

Hallo Sven,

2010/8/29 lano mail4l...@web.de:
  

Hallo auch,
ich hab mal eine Frage zur Programmierung in c.
Dazu muss ich erwähnen das ich überhaupt keinen schimmer davon habe,
also komplett null.
Scriptsprachen wie shell oder perl bereiten mir da weitaus weniger probleme.



 Schön, dass du Dich an eine Programmiersprache wagst. Erweitert den
(Informatik-) Horizont :-))

  

*g*, grad befürchte ich das ich anfange c noch mehr zu hassen als microsoft

 Du hast bisher nichts über Deine Programmierumgebung geschrieben.
Falls Du nicht von Dir selbst aus bei einfachen Tools wie einem Editor
und gcc bleiben möchtest, kann ich dir nur empfehlen, eine IDE zu
verwenden.

  
ich sach mal so, ide ist ja sicher schön, nur denk ich nimmt mir das 
nicht allzuviel ab, bzw die grundlagen muss ich so oder so können, da 
verwirrt mich ne ide mit hunderten von einstellungsmöglichkeiten 
womöglich nur noch.

bisher reicht mir mcedit als editor, syntax highliting und gut.


 Unter Linux müsstest Du da leicht fündig werden, das Angebot ist sehr
groß! Um nur einige zu nennen: KDevelop, Eclipse oder Netbeans (auch
wenn in Java geschrieben, gibt es wohl auch Module, um in C zu
programmieren und vor allem zu gebuggen). Hier mal Links dazu:

  

KDevelop hab ich mir schon mal angeschaut, kann auch mit perl und qt4 um.
Allerdings find ich bei perl einen einfachen editor besser und bei qt4 
den qt-designer in verbindung mit einem editor. für riesen projekte 
sieht das sicher wieder anders aus.

http://linuxmafia.com/faq/Devtools/ides.html
http://en.wikipedia.org/wiki/Comparison_of_integrated_development_environments

 Dein allergrößter Vorteil dürfte der Debugger sein, mit dem Du Dein
Programm besser verstehen soltlest.
  
ma schaun obs bei mir was bringt, ich schein da eine gewisse 
lernresistenz aufzuweisen ;)


so denn -sven-

--

PUG - Penguin User Group Wiesbaden - http://www.pug.org


Re: [PUG] OT: c Programmierung für ganz anfängl iche Anfänger

2010-08-31 Diskussionsfäden lano

Laurence Tonke schrieb:

On 08/31/2010 12:59 PM, lano wrote:
  

Laurence Tonke schrieb:


Deshalb der Link auf das Wiki, da sollte genügend Erklärung dabei sein ;-)

  
Oh, ja cool, hatte noch garnicht draufgeschaut, mir fällt aber schon was 
ein was ich damit machen könnte.
allerdings werd ich erstmal nen bisschen üben, das wenigstens ne halle 
welt anwendung auf anhib funktioniert.


Ideen für programme hätt ich genug, könnt ich ne ganze firma mit 
beschäftigen, hapert nur an der umsetzung :)


so denn -sven-

--

PUG - Penguin User Group Wiesbaden - http://www.pug.org


[PUG] sw raid5 will nicht mehr

2010-08-31 Diskussionsfäden lano

Moin,

ich hab mir mal, es ist schon länger her, ein software raid 5 erstellt.


raid:~# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : inactive sdd[2] sdb[4](S) sdc[5](S) sde[6](S) sda[3]
 2441932480 blocks

unused devices: none

sdb ist mir unlängst ausgefallen, sdb hab ich dann ersetzt und 
zusätzlich noch sde hinzugefügt.

nun scheint sdb als spare zu fungieren, das war voher nicht so.
ich hab sdb einfach mit mdadm --add hinzugefügt.

ist da noch was zu retten? wie bekomme ich sdb dazu nicht als spare zu 
arbeiten?


-Sven-

--

PUG - Penguin User Group Wiesbaden - http://www.pug.org


Re: [PUG] OT: c Programmierung für ganz anfängl iche Anfänger

2010-08-30 Diskussionsfäden lano

Nathanael Schweers schrieb:
In perl ist ein string ein scalar, in C nicht. 
C kennt keinen eigenen typ für strings, sondern strings sind einfach

nur Arrays (listen) von chars. Um das Ende zu markieren bekommt das
letzte Element den wert 0 (== '\0'). Das ist nicht das Zeichen '0'!
Wenn du nun nen string hast und return Text; schreibst ist damit die
Adresse des ersten Elements des Arrays gemeint. Darum brauchst du auch
einen char * als Rückgabewert, sonst bekommst du bloß ein Zeichen (und
einen Kompilerfehler). 
Da du kein Array zurückgeben kannst, sondern nur die Anfangsadresse

dessen musst du auch vorher das Array an einer Stelle ablegen die beim
verlassen der Funktion nicht ungültig wird. Alle lokalen Variablen
werden ja schließlich wieder freigegeben - und damit eben auch die
Variable Text. Ich schreib mal ein kleines bisschen code hier hin (und
verzichte mal um die Verwirrung niedrig zu halten absichtlich auf
Fehlerbehandlung):

char *buffer=malloc(BUFSIZE+1); /* +1 für das 0-byte am ende */

  

ich hab nun folgendes was auch funktioniert:

char *read_file(char *file_name) {

   FILE *datei;
   char *buffer=malloc(BUFSIZE+1);
   buffer[0]=0;

   if( (datei=fopen(file_name,r)) == NULL) {
   fprintf(stderr,Kann %s nicht oeffnen\n,file_name);
   return EXIT_FAILURE;
   }

   fgets(buffer,BUFSIZE,datei);

return buffer;
}

geh ich jetzt recht in der annahme das ein free(buffer) nach dem 
aufrufen der funktion den speicher dann wieder frei gibt?

ca so:

printf(Kanal: %s, read_file(/tmp/currentChannel));
free(buffer);



-Sven-

--

PUG - Penguin User Group Wiesbaden - http://www.pug.org


Re: [PUG] OT: c Programmierung für ganz anfängl iche Anfänger

2010-08-30 Diskussionsfäden lano

Moin,
könnt mir nochmal jemand erklärend helfen, ich dreh hier auf kurz oder
lang durch.
Da denkste da haste was verstanden, nix ist, und try`n error nervt langsam.

*---net.c--*
#include stdio.h
#include string.h
#include net/if.h
#include netinet/in.h
#include sys/ioctl.h

#define BUFSIZE 60

unsigned char *get_mac(void) {
int sd;
struct ifreq ifr;
char *buffer=malloc(BUFSIZE+1);
buffer[0]=0;


   sd = socket(AF_INET, SOCK_DGRAM, IPPROTO_IP);
   if (sd  0) {
   perror(socket);
   exit(1);
   }

   strncpy(ifr.ifr_name, eth0, IFNAMSIZ);

   if (ioctl(sd, SIOCGIFHWADDR, ifr)  0) {
   perror(ioctl SIOCGIFHWADDR);
   exit(1);
   }

buffer = (unsigned char *) ifr.ifr_hwaddr.sa_data;

//printf(%02x:%02x:%02x:%02x:%02x:%02x\n,
buffer[0],buffer[1],buffer[2],buffer[3],buffer[4],buffer[5]);
*--- Wenn ich printf auskommentiere wird die mac auch angezeigt--*
return buffer;
}

*--net.h--*
#ifndef __NET_H__
#define __NET_H__

unsigned char *get_mac(void);

#endif

*---main.c--*
#include net.h
char *buffer;
int main(int argc, char **argv) {
printf(Mac: %s\n, get_mac());
free(buffer);
return 0;
}



Was mach ich da wieder fürn blödsinn?
Buch lesen ist ja ganz nett, aber nen buch kann ich keine fragen stellen.
Das deprimiert dermaßen, hab langsam echt kein bock mehr.

trotzdem vielen dank für eure hilfe und die bemühungen.

-Sven- --- der sich jetzt erstmal abreagieren muss

--

PUG - Penguin User Group Wiesbaden - http://www.pug.org


Re: [PUG] OT: c Programmierung für ganz anfängl iche Anfänger

2010-08-30 Diskussionsfäden lano

Moin,
könnt mir nochmal jemand erklärend helfen, ich dreh hier auf kurz oder
lang durch.
Da denkste da haste was verstanden, nix ist, und try`n error nervt langsam.

*---net.c--*
#include stdio.h
#include string.h
#include net/if.h
#include netinet/in.h
#include sys/ioctl.h

#define BUFSIZE 60

unsigned char *get_mac(void) {
int sd;
struct ifreq ifr;
char *buffer=malloc(BUFSIZE+1);
buffer[0]=0;


   sd = socket(AF_INET, SOCK_DGRAM, IPPROTO_IP);
   if (sd  0) {
   perror(socket);
   exit(1);
   }

   strncpy(ifr.ifr_name, eth0, IFNAMSIZ);

   if (ioctl(sd, SIOCGIFHWADDR, ifr)  0) {
   perror(ioctl SIOCGIFHWADDR);
   exit(1);
   }

buffer = (unsigned char *) ifr.ifr_hwaddr.sa_data;

//printf(%02x:%02x:%02x:%02x:%02x:%02x\n,
buffer[0],buffer[1],buffer[2],buffer[3],buffer[4],buffer[5]);
*--- Wenn ich printf auskommentiere wird die mac auch angezeigt--*
return buffer;
}

*--net.h--*
#ifndef __NET_H__
#define __NET_H__

unsigned char *get_mac(void);

#endif

*---main.c--*
#include net.h
char *buffer;
int main(int argc, char **argv) {
printf(Mac: %s\n, get_mac());
free(buffer);
return 0;
}



Was mach ich da wieder fürn blödsinn?
Buch lesen ist ja ganz nett, aber nen buch kann ich keine fragen stellen.
Das deprimiert dermaßen, hab langsam echt kein bock mehr.

trotzdem vielen dank für eure hilfe und die bemühungen.

-Sven- --- der sich jetzt erstmal abreagieren muss

--

PUG - Penguin User Group Wiesbaden - http://www.pug.org


Re: [PUG] OT: c Programmierung für ganz anfängl iche Anfänger

2010-08-30 Diskussionsfäden lano

Nathanael Schweers schrieb:

On Mon, 30 Aug 2010 14:36:09 +0200
lano mail4l...@web.de wrote:

  

*---net.c--*
#include stdio.h
#include string.h
#include net/if.h
#include netinet/in.h
#include sys/ioctl.h

#define BUFSIZE 60

unsigned char *get_mac(void) {
int sd;
struct ifreq ifr;
char *buffer=malloc(BUFSIZE+1);
buffer[0]=0;


sd = socket(AF_INET, SOCK_DGRAM, IPPROTO_IP);
if (sd  0) {
perror(socket);
exit(1);
}

strncpy(ifr.ifr_name, eth0, IFNAMSIZ);

if (ioctl(sd, SIOCGIFHWADDR, ifr)  0) {
perror(ioctl SIOCGIFHWADDR);
exit(1);
}

buffer = (unsigned char *) ifr.ifr_hwaddr.sa_data;

//printf(%02x:%02x:%02x:%02x:%02x:%02x\n,
buffer[0],buffer[1],buffer[2],buffer[3],buffer[4],buffer[5]);
*--- Wenn ich printf auskommentiere wird die mac auch
angezeigt--* return buffer;
}

*--net.h--*
#ifndef __NET_H__
#define __NET_H__

unsigned char *get_mac(void);

#endif

*---main.c--*
#include net.h
char *buffer;
int main(int argc, char **argv) {
printf(Mac: %s\n, get_mac());
free(buffer);
return 0;
}



Ich hab ehrlich gesagt Sowas noch nie gemacht, aber ... was genau ist
denn da dein Problem?

  

ich erhalte als ausgabe:
Kanal: 2718f001d176
Mac:

Wie gesagt der Kanal ist richtig, das funktioniert. Nur die Mac wird 
nicht angezeigt.

Wenn ich bei printf nicht %s sondern %x angebe bekomme ich:

Kanal: 2718f001d176
Mac: 7df2

Meine vermutung, jetzt erhalte ich nur die adresse des speicherbereichs

bei %c

Kanal: 2718f001d176
Mac: �

Problem ist das ich gern ein char string zurück gegeben haben möchte, im 
grunde das selbe wie bei read_file, was wir ja schon hatten, also 
vermute ich den fehler bei return in der funktion get_mac.

voher hab ich ja:

buffer = (unsigned char *) ifr.ifr_hwaddr.sa_data;

erstens weis ich nicht was das mit  sein soll, ich hab auch schon versucht:
return ifr.ifr_hwaddr.sa_data;
anzugeben, funktioniert aber auch nicht.

in buffer[0],buffer[1],buffer[2],buffer[3],buffer[4],buffer[5] steht jedenfalls 
die mac drin.
wenn in der funktion get_mac
printf(%02x:%02x:%02x:%02x:%02x:%02x\n,
buffer[0],buffer[1],buffer[2],buffer[3],buffer[4],buffer[5]);
auskommentiere wird sie auch ausgegeben.

Ich bekomm es aber nicht hin das ich sie in der main funktion angezeigt bekomme.


-sven-
--

PUG - Penguin User Group Wiesbaden - http://www.pug.org


Re: [PUG] OT: c Programmierung für ganz anfängl iche Anfänger

2010-08-30 Diskussionsfäden lano

Bernhard Guillon schrieb:

On 30.08.2010 15:59, lano wrote:

Nathanael Schweers schrieb:

On Mon, 30 Aug 2010 14:36:09 +0200
lano mail4l...@web.de wrote:


*---net.c--*
#include stdio.h
#include string.h
#include net/if.h
#include netinet/in.h
#include sys/ioctl.h

#define BUFSIZE 60

unsigned char *get_mac(void) {
int sd;
struct ifreq ifr;


struct ifreq ifr;  ist lokal da du es innerhalb von get_mac definiert 
hast


buffer = (unsigned char *) ifr.ifr_hwaddr.sa_data;

Hier setzt du den Wert von deinem buffer auf die Adresse von ifr das 
ja lokal ist.

angezeigt--* return buffer;


Hier gibst du einen Pointer zurück der als Wert eine Adresse auf eine 
lokale Variable hat.
Ok, soweit kann ich dir folgen. Jetzt würde ich denken, schreibe ich 
struct ifreq ifr;

außerhalb der funktion dann wäre es ja global. tuts aber auch nicht.
Laut Buch und google handelt es sich wohl um eine Struktur.

ifr.ifr_hwaddr.sa_data;

müsste dann nicht irgendwo etwas wie:

struct ifreq  {
  char ifr_hwaddr;
};

struct ifreq ifr;

stehn? aber was hatt es dann mit sa_data auf sich?


Da das die Adresse von einer lokalen Variable ist kannst du außerhalb 
nichts mit der Adresse anfangen die in dem zurückgegebenen Pointer steht.

Soweit hab ichs gerafft


Bücher vermitteln Grundlagen und sind meistens recht gut aufgebaut. 
Wenn du lieber mit Code spielst, was auch sehr wichtig ist um eine 
Programmiersprache zu lernen, solltest du dennoch vieleicht mit 
einfachen Programmen beginnen die gewisse C eigenheiten vermitteln.



*g* ich hab schon eine woche gebraucht bis Hallo Welt funktioniert hat.
Eigendlich geht es insgesamt nur darum
1. eine datei vom einem http-server laden
2. das was in der datei steht in eine variable stecken
2. die mac in eine variable bekommen
3. daraus eine url basteln
4. die url an den http-server senden

das ganze hab ich schon mit einem shell script getestet, dafür hab ich 
15min gebraucht.
problem, das script frist zuviel power. Also hab ich gedacht, 
versuchstes mal mit c.
Eigentlich hatt ich gedacht wäre das schon eine einfache sache, das es 
so kommt konnt ich ja nicht ahnen.
Hoffentlich klinge ich jetzt nicht wie ein Oberlehrer oder sowas - ist 
nicht meine Absicht!



Nö klingste nicht.
Scheib dir z.B. ein Programm in dem du die Gültigkeit von Variablen 
(lokal/global) ausprobierst. Aanschließend noch eins in dem du call by 
value und call by reference verwendest. Irgendwas mit Pointer 
Arithmetic z.B. ein char Array damit zu kopieren ist warscheinlich 
auch nützlich.


wenn ich mit dem jetzt irgendwie durch bin und mal wieder nen paar 
nächte/wochen zeit habe, werd ichs mal versuchen, erstmal brauch ich nen 
gutes buch in papierform, da werd ich morgen mal schaun.
Danach hast du es leichter und bist bei größeren Programmen nicht 
gefrustet :)

An größere sachen denk ich erstmal garnicht ;)


Viel Spaß weiterhin
Bernhard

Danke -Sven-
--

PUG - Penguin User Group Wiesbaden - http://www.pug.org


Re: [PUG] OT: c Programmierung für ganz anfängl iche Anfänger

2010-08-30 Diskussionsfäden lano

Bernhard Guillon schrieb:

On 30.08.2010 18:44, lano wrote:
Ok, soweit kann ich dir folgen. Jetzt würde ich denken, schreibe ich 
struct ifreq ifr;

außerhalb der funktion dann wäre es ja global. tuts aber auch nicht.

Globale Variablen sind an sich keine gute Idee...
Hier etwas das bei deinem Beispiel besser geeignet ist:
Da malloc Speicher vom Heap reserviert ist er nach dem Funktionsaufruf 
noch vorhanden. Du kannst die MAC in den von dir reservierten 
Speicherbereich schreiben/kopieren. Meistens macht man aber call by 
reference. Deswegen meinte ich ja es ist eine gute Idee die zwei 
Varianten call by reference und call by value mal genauer zu 
untersuchen :)



Laut Buch und google handelt es sich wohl um eine Struktur.

ifr.ifr_hwaddr.sa_data;

müsste dann nicht irgendwo etwas wie:

struct ifreq  {
  char ifr_hwaddr;
};

struct ifreq ifr;

stehn? aber was hatt es dann mit sa_data auf sich?

Such mal in den Includes, die du angegeben hast danach dort sind die 
ganzen Sachen deklariert.



Ah ja da war ja noch was mit, naja Bäume und Wald und so ;


Warscheinlich hast du für das Shellskript curl verwendet? Wenn ja 
solltest du dich recht schnell mit libcurl [1] zurecht finden. Hier 
ist ein Beispiel dazu [2].


Das ganze soll auf der Dbox2 laufen, nem ppc mit 66MHz, da die Box aber 
schon genug aufgaben hat, zb das TV-Bild anzeigen, ist das schlecht wenn 
ich ne ganze reihe systembefehle brauche.

Die Box hat nur ne bussybox, also nur recht wenig befehle.

ich habs so gelöst:
#!/bin/sh

User=`ifconfig | grep HWaddr`
User=`echo $User | { read first zwei drei vier rest ; echo $rest; }`
 Mac besorgen

CurrentChannel=`pzapit -gi`
CurrentChannel=`echo $CurrentChannel | { read first rest ; echo $first; }`
 Aktuellen Kanal holen, kann man auch vom http localhost beziehen

if [ $CurrentChannel =  ]; then
CurrentChannel=standby
fi
 Wenn kein Kanal, dann ist die Box im standby

wget -q -O /dev/null 
http://xyz.dyndns.info/index.php?channel=$CurrentChanneluser=$User;

 Daten an Server Senden
sleep 59
exec $0 
 Sich selber neu starten
exit 0

Was genau braucht bei dem Skript eigentlich so viel Power? Von der 
Beschreibung her sollte es länger dauern die Seite vom Server zu 
bekommen bzw die da hin zu schicken. Das wird mit C auch nicht 
schneller. Vieleicht kann man auch nur einen speziellen Teil des 
Skriptes optimieren, statt das ganze in C zu schreiben.


Naja könnt man sicher, das ist jetzt mal ne verkürzte fassung, wenn der 
kanal sich zb nicht geändert hat, sendet er auch nix an den server, es 
sei denn der kanal bleibt bei 5 scriptdurchläufen gleich.

Dazu leg ich dann noch ne tmp datei an wo ich mir den letzten kanal merke.
der wird dann verglichen, da das dann insgesamt viele systemaufrufe 
sind, dacht ich das könnt ich mir in c in ner variablen merken, dann 
sind die sachen schonmal im ram bereich und der zugriff schneller. Hinzu 
kommt das ich eigentlich dachte ich könnt doch nochmal nen bisschen mit 
c üben. Mich ärgert das schon das ich das früher nicht gelernt hab, im 
gunde könnt man damit schöne sachen machen, wenn man denn nicht grade 
meinen kopf auf den schultern trägt ;)
Ich wette du schreibst sowas in 20 min, beim kaffee trinken nebenbei, 
ich sitz da nun schon ne woche dran, nacht für nacht und den halben tag ;)



Gruß
Bernhard


-Sven-
--

PUG - Penguin User Group Wiesbaden - http://www.pug.org


Re: [PUG] OT: c Programmierung für ganz anfängl iche Anfänger

2010-08-30 Diskussionsfäden lano

Bernhard Guillon schrieb:


Gruß
Bernhard


Boah, so, grad in dieser Minute geschafft.

Kanal: 2718f001d176
Mac: 00:50:9c:15:c8:8b


War das ne schwere geburt. unter anwendung von sprintf.

Jetzt werd ich erstma ausschalfen.

Vielen vielen dank für deine/eure bemühungen. Nathanael will ich ja 
nicht vergessen.


so denn -Sven-
--

PUG - Penguin User Group Wiesbaden - http://www.pug.org


Re: [PUG] OT: c Programmierung für ganz anfängl iche Anfänger

2010-08-29 Diskussionsfäden lano

Bernhard Guillon schrieb:

On 29.08.2010 02:59, lano wrote:


nun möchte ich von einem weiteren main.c die funktion print_hallo 
nutzen.

Wie funktioniert das.

Die main darf es nur einmal geben deswegen ist sie hier auskommentiert ;)

Ahhhsoo, hätte gedacht das er sich nur die funktionen raussucht die er
braucht und den rest ignoriert.

Compilieren mit:
gcc -o net main.c net.c


Funktioniert, danke. der tip mit der main funktion hats glaub ich
rausgehaun, hab schon soviel versucht.


Wenn was unklar ist sag bescheid.


Das werd ich tun, jetzt probiere ich erstmal nen bisschen weiter rum ;)

-Sven-


PS:
| C Programieren von Anfang an vom rororo Verlag.
wusste garnicht das der Verlag solche bücher hat, hab gedacht da gibts
nur sowas wie 5 freunde, kenn da nur kinderbücher von.
werd das nächste mal im buchladen nen blick drauf werfen.
Ich hab mir mal ohne c zu c++ von Peter P. Bothner und Wolf-Michael
Kähler gekauft, das ist aber so hochgestochen sachlich geschieben das
ich das nicht verstehe, es ist auch nur ein programm was im laufe des
buches erweitert wird, ohne bsp. dazwischen, ist natürlich doof wenn man
den anfang schon nicht versteht. werd mir das online buch mal anschaun

so denn -Sven-


--

PUG - Penguin User Group Wiesbaden - http://www.pug.org


Re: [PUG] OT: c Programmierung für ganz anfängl iche Anfänger

2010-08-29 Diskussionsfäden lano

Bernhard Guillon schrieb:

Wenn was unklar ist sag bescheid.

bescheid.

Ich wollt nun, nachdem das mit hallo welt so gut geklappt hat eine datei 
auslesen.
google an und ein beispiel genommen. wieder eine extra datei genommen 
file.c und file.h


*---file.h---*
#ifndef FILE_H //
#define FILE_H // definiere


char read_file(char *file_name); //Prototyp von deiner Funktion


#endif //ende der Bedingung


*file.c*
#include stdio.h
#include stdlib.h

#include file.h

int f;
char Text[600];

char read_file(char *file_name) {
   f = fopen(file_name,r);
   while( fgets(Text, sizeof(Text), f) !=0 )
   fclose(file_name);
   return Text;
}

*---main.c---*
#include stdio.h
#include plugin.h
#include http.h // HTTP Client
#include file.h // Liest eine Datei

char channel[30];

// Starten des Plugins
void plugin_exec(PluginParam *par) {

// Aktuellen Kanal holen und speichern
HTTP_downloadFile(localhost, 80, /control/getonidsid, 
/tmp/currentChannel, 0, 1);

//read_file(/tmp/currentChannel);

printf(Kanal: %c\n, read_file(/tmp/currentChannel));


return;
}


*ENDE*

Das mit HTTP_downloadFile funktioniert wunderbar, also wurde ich ein 
wenig übermütig, datei lesen klappt nicht.
bei der printf Anweisung, wofür ist %s %c %l und was weis ich was es da 
noch gibt, habs erst mit %s versucht, dann hab ich gedacht ok ist ja nen 
char versuchstes mit %c :)


meine mal gelesen zu haben das void nix zurück gibt, int ne zahl, und 
char nen zeichen.


Perl ist wesendlich einfacher :)

-Sven-
--

PUG - Penguin User Group Wiesbaden - http://www.pug.org


Re: [PUG] OT: c Programmierung für ganz anfängl iche Anfänger

2010-08-29 Diskussionsfäden lano

Nathanael Schweers schrieb:

int f;


/* du brauchst kein int, sondern ein (FILE *). int ist für file
deskriptoren, fgets und fopen aber benutzen zeiger auf FILE (ist ein
wrapper um filedeskriptoren, da ist sogar ein puffer mit drin). */
  
Ah ja, macht sinn. Das mit * zeigt dann auf eine adresse wo die daten 
dann abgelegt sind, wobei mich bei einer variablen die adresse ja nicht 
interessiert.
in perl hätt ich ja ein filehandle, von daher versteh ich schon warum 
int völlig falsch ist.

Hab ich das halbwegs richtig verstanden?

char Text[600];

char read_file(char *file_name) {


/* du willst vermutlich nicht char, sondern char * zurückgeben*/
  
hier im grunde das selbe, das was die funktion zurück gibt wird in der 
adresse xy gespeichert, ich will also nur die adresse wissen wo ich dann 
die daten finde. warum das so ist ist mir zwar völlig unklar, ich nehms 
aber mal so hin.

f = fopen(file_name,r);
while( fgets(Text, sizeof(Text), f) !=0 )


/* was machst du da? das sieht so aus als würdest du solange fgets !=0
zurückgibt die datei schließen, und das ganze auch noch in den immer
gleichen puffer schreiben (die alten daten gehen also verloren). */
  
Mein got ja, jetzt raff ichs aber erst, das fclose(file_name) gehört ja 
noch zur while schleife.

; hab ich völlig übersehn.

fclose(file_name);
return Text;


/* return Text; wird vermutlich nichtmal übersetzt, da von (char *)
nach char konvertiert wird. */
  
Das versteh ich nun nicht mehr, mal angenommen ich scheibe die daten in 
Text, geb ich dann mit return Text nicht die daten wieder aus? müsst ich 
*Text zurück geben, also die adresse wo die daten liegen?


in perl kann ich einfach:
$text = hallo;
return $text;

machen, und die funktion gibt hallo zurück

bei der printf Anweisung, wofür ist %s %c %l und was weis ich was es
da noch gibt, habs erst mit %s versucht, dann hab ich gedacht ok ist
ja nen char versuchstes mit %c :)



siehe man 3 printf oder man 3p printf dazu.
%s sagt printf dass hier ein string reinkommt. %c ein zeichen, %l steht
für long. Davon gibt's ne menge mehr, z.b. auch für floating point. 
  

Ok, hab ich kapiert.

Perl ist wesendlich einfacher :)


Perl ist auf ne andere art obskur ;)
  

Hmm, ich komm da eigendlich gut mit zurecht.

Aber stimmt schon, C ist für neulinge nicht gerade einfach, und ich
finde dass die standard bibliothek es einem neuling nicht gerade
einfacher macht.
Ich hatte c mal in der berufsschule, ist schon 15 Jahre her, das sah 
dann so aus das der Lehrer die Tafel in 5 min vollgeschrieben hat, ich 
war noch halbwegs interessiert aber all meine fragen konnt er mir nicht 
beantworten, weil das so ist war seine standard Antwort, warum konnt 
er mir in keinem fall erklären, nach 6 Monaten hab ich aufgegeben zu 
fragen und wie alle anderen gewartet bis ich den lösungszettel bekomme 
und hab einfach abgeschrieben.
Ich hoffe dass Ich dich nicht zu sehr verwirrt habe. 

  
Geht so ;) ich hoffe ihr habt was zum lachen, weil ich mich so schwer 
tue. :)


-sven-
--

PUG - Penguin User Group Wiesbaden - http://www.pug.org


[PUG] OT: c Programmierung für ganz anfängl iche Anfänger

2010-08-28 Diskussionsfäden lano

Hallo auch,
ich hab mal eine Frage zur Programmierung in c.
Dazu muss ich erwähnen das ich überhaupt keinen schimmer davon habe,
also komplett null.
Scriptsprachen wie shell oder perl bereiten mir da weitaus weniger probleme.
hinzu kommt das was ich im netz so finde, versteh ich nicht wirklich, da
scheint man immer ein gewisses grundwissen mit bringen zu müssen. Über c
Hab ich auch nur ein Buch und das ist für Leute geschrieben die schon
das fünfte Studium beendet haben, da versteh ich noch nichtmal das Vorwort.

zu meiner Frage:
Ich hab ein simples programm:
--- net.c 
#include stdio.h
#include stdlib.h

int print_hallo() {
printf(Hallo Welt\n);
return 0;
}

int main() {
print_hallo();
return 0;

nun möchte ich von einem weiteren main.c die funktion print_hallo nutzen.
Wie funktioniert das.
Ich hab schon 2 nächte nach try'n'error halb google durch, aber ich komm
nicht da hinter.
Könnte mir da jemand freundlicher weise erklären wie das funktioniert,
aber bitte ganz ganz einfach. Ein ganz ganz einfaches beispiel wäre nett
von dem ich mir das prinzip abschaun kann und dann darauf aufbaun.

vielen dank schonmal für die mühe
so denn -Sven-



--

PUG - Penguin User Group Wiesbaden - http://www.pug.org