Ok, jetzt hab ich zu Testzwecken Mal ein sleep in den Elternprozess gesetzt, sodass der Kindprozess auf jeden Fall vorher ausgeführt wird.
Es wird allerdings trotzdem immer nur auf die erste Datei im Verzeichnis zugegriffen
farkas schrieb:
Das wird wohl etwas schwieriger werden als ich dachte. Ich kenne die Seriell bzw. Parallel- Schnittstelle nur von der DOS- Zeit her, wo man noch mit out xxxx, x arbeitete.
Das ist doch jetzt auch nicht großartig anders
Generic1 schrieb:
Was ich (als Java Programmierer) jetzt nicht versteh ist, wie ich das dazulinken machen soll und wie dann die Aufruf- Parameter und die Rückgabewerte der Methodenaufrufe erkannt werden.
Indem du einen passenden Header zu deiner Bibliothek anbietest.
Vielleicht kann das noch jemand für einen Java Programmierer erklären bzw. wie ist der Befehl für das dazulinken?
Nein, ich kann dir nicht erklären wie man taucht, wenn du nicht schwimmen kannst. Deine Frage verrät, dass dir die Begriffe gar nicht richtig bekannt sind. Tut mir Leid, das ist einfach zu umfangreich, um das in einem Forum zu erklären. Du brauchst mehr Erfahrung wie man überhaupt ausführbare Programme erstellt und was die Aufgaben von Compiler, Linker, Quellcodedateien, Bibliotheken und Headern sind.
Hi,
ich benutze getopt() um Parameter auszuwerten.
Mein Problem momentan ist, dass ich gewisse Parameter unabhängig von der Reihenfolge auslesen muss.
Wenn jemand z. B. die Option "v" (verbose) setzt, möchte ich das nicht erst bei der 5. Iteration merken, sondern von Anfang an.
Ist hier die einzige Möglichkeit einfach vorher nach der Option "v" zu scannen und dann wieder optind auf 1 zu setzen?
L. G.
Steffo
Sauerei triffts gut, da haste recht. Beim Ausführen merkt mans spätestens, dass man das besser machen sollte.
EDIT: Wie kann man die Speicherallokation anders/besser machen? Ich bin wie gesagt Anfänger, also bin ich um jede Art von Hilfe dankbar.
Dir ist aber schon klar das du unter Linux das <windows.h> nicht hast, oder?
Wenn du irgendwelche Sachen von dort brauchst, musst du halt schauen das es die gleichen/ähnlichen Sachen unter Linux gibst und dann im Programm beide Sachen einbauen, und je nachdem für welches System du kompilierst muss halt eine Compileranweisung an der entsprechenden Stelle drin stehen.
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C (C89 und C99) in das Forum Linux/Unix verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?
Dieses Posting wurde automatisch erzeugt.
Sorry, ich meinte hdiapi. Tut mir Leid dass man mir alles aus der Nase ziehen muss, aber ist halt beim erstes Mal dass ich USB programmieren will und weiß gar nicht woran ich mich halten soll.
Ich suche bei google: "c++ linux usb hid read" und finde alles mögliche. Zum Beispiel:
https://github.com/signal11/hidapi
oder
http://lxr.free-electrons.com/source/samples/hidraw/hid-example.c
Ich hätte gerne eine Vorlage zum Auslesen eines HID Gerätes per USB. Kann mir jemand nen guten Link geben?
Hallo,
Wie man es richtig macht wurde schon gesagt,
richtig viele Threads machen hier keinen Sinn,
weil die Threads nur auf IO warten würden ...
Vermutlich liegt das Performance Optimum schon bei zwei oder drei Threads,
unabhängig von der Anzahl CPUs.
habt ihr eine Idee, warum es zu dem Absturz kommen kann?
Ich meine es dürfte am virtuellen Speicher liegen.
Typischerweise bekommt jeder Thread initial einen virtuellen Stackframe von 8MB.
ulimit -aS
gibt das Softlimit an
ulimit -aH
gibt das Hardlimit an
Davon werden nur die ersten 4KB real verwendet.
Wenn man mal von max. 4 GB virtuellem Speicher ausgeht:
4096 MB / 8 MB = 512
Bei einem 32 Bit OS ist so bei 512 Threads in einem Prozess Ende.
Ganz ehrlich finde ich auch gut so
Blöd ist es aber trotzdem, wenn einem der virtuelle Speicher ausgeht,
obwohl noch genug realer Speicher vorhanden ist ...
Tip:
Wenn man das ULimit 'stack size' (SoftLimit) runter setzt z.B. auf 512 KB
tut nicht spürbar weh, reduziert aber signifikant den 'Verbrauch' an virtuellem Speicher mit den daraus resultierenden positiven Effekten.
Gruß Frank
tntnet schrieb:
time ist so ein bisschen ein Programm . Also unter bash gibt es das als builtin (so nennt sich das - nicht keyword).
Nein, time ist in bash kein builtin, sondern tatsächlich ein keyword.
Vergleiche echo mit time:
$ type echo
echo is a shell builtin
$ type time
time is a shell keyword
time kann kein builtin sein, weil es sich anders verhält.
$ time echo hi &> /dev/null
real 0m0.000s
user 0m0.000s
sys 0m0.000s
Wäre time ein builtin, müsste die Umleitung von stdout und stderr nach /dev/null auch die Ausgabe von time unterbinden. time kann seine Ausgabe aber loswerden (und zwar auf dem alten stderr), also kann time kein builtin sein.
tntnet schrieb:
rüdiger schrieb:
pyhax schrieb:
rüdiger schrieb:
@pyhax
Nein
Funktioniert das nicht?
Schon. Aber ist unnötig kompliziert und nicht sehr optimal. So sollte man zB lieber die impliziten Regeln nutzen, als alles händisch zu machen.
Also ich finde, die Lösung von pyhax wesentlich besser als die von rüdiger. pyhax hat nämlich eine . Es ist eine Lösung. Sicher nicht die beste, aber besser so als gar nicht.
Ich hab doch ein Link zu einer deutlich besseren Lösung gepostet...
chess schrieb:
ok, jetzt bin ich noch etwas verwirrter
wo liegt für dich der unterschied zwischen anwednungs- und systemprogrammierung?
ist es generell möglich auf meinem windows-pc meinen code zu schreiben und zu kompilieren, so dass er unter linux läuft? oder muss ich gewzungenermaßen unter linux compilieren, damit er dort auch läuft?
Ich versuche mal, mit meinen Worten (und meiner Meinung) ein wenig Klarheit zu bringen.
Also rein theoretisch ist es möglich, unter Windows für Linux zu compilieren. Aber das ist kompliziert. Und zwar viel komplizierter, als ein Linux unter einer virtuellen Maschine zu installieren und dort zu compilieren.
C würde ich nicht verwenden. Höchstens für Treiber oder ähnliches - Systemprogrammierung eben. Ein Bot oder so was kannst Du in C++ schreiben. Ich würde es sogar tun, da ich C++ gut beherrsche und auch fertige Libraries für HTTP-Kommunikation habe und verwenden kann.
An Deiner stelle würde ich erst mal untersuchen, wo denn der Engpass ist. Wenn deine Perl-Lösung nicht schnell genug ist, liegt das höchstwahrscheinlich nicht an Perl. Es ist einfach viiiieeeel einfacher, das zu untersuchen, als Dich auf C++ einzulassen um dann festzustellen, dass das praktisch nicht schneller ist. In der Regel ist der Engpass bei solchen Sachen die Netzwerkkommunikation selbst. Und die wird mit C++ auch nicht viel schneller sein. Erst wenn tatsächliche die Verarbeitung der abgerufenen Seiten einen signifikanten Anteil der Verarbeitungszeit einnimmt, solltest Du Dir c++ anschauen.