Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: GentooForum.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

26.04.2006, 15:38

Datei dauerhaft ausführen

Hallo Team!

habe folgendes problem: Habe eine Datei in C geschrieben, die soll dauerhaft ausgeführt werden. Hätte mir das so vorgestellt das ein Script einmal gestartet wird und da die schleife drinnensitzt, die eine ausführbare datei ständig ausführt. muss allerdings ziemlich schnell laufen, weiß jmd ne lösung?


CE

2

26.04.2006, 17:01

Kommt darauf an, welchen Sinn das Ganze machen soll. Bau die Schleife doch direkt in das C-Programm ein.
__
Rud

3

26.04.2006, 17:06

for (x=x) {
bladibla
}
... nur ein weiterer tag im leben eines naren ... :P

4

26.04.2006, 18:21

Zitat

Original von capoeira
for (x=x) {
bladibla
}

Und schon haben wir die CPU bei 100 %. :)
Seien Sie vorsichtig mit Gesundheitsbüchern - Sie könnten an einem Druckfehler sterben. [Mark Twain]

5

26.04.2006, 23:42

er hat ja nur gechrieben, dass er was dauerhaft machen will, oder? ;)

mir fällt momentan die sleepfunktion net ein, aber vielleicht weißt ja die syntax in c?
... nur ein weiterer tag im leben eines naren ... :P

6

27.04.2006, 00:13

Zitat

Original von capoeira
mir fällt momentan die sleepfunktion net ein, aber vielleicht weißt ja die syntax in c?

Quellcode

1
man 3 sleep
Ansonsten gibts natürlich noch diverse Möglichkeiten, auf Ereignisse (Semaphore usw.) zu warten bzw. zu reagieren. Wobei ich zugeben muß, daß ich solche Dinge eher aus der MS-Welt kenne (meine Programmierkenntnisse/-erfahrungen im Unix-Umfeld sind eher rudimentär).

Mfg, Rudi
Seien Sie vorsichtig mit Gesundheitsbüchern - Sie könnten an einem Druckfehler sterben. [Mark Twain]

7

27.04.2006, 00:22

man is gut, waste aber net vergessen darfst is dass des sleepkommando aus den coreutils/darauf bezieht sich man ja bereits selbst ein übersetztes cproggie is, hier der relevante teil aus den sources:

for (i = optind; i < argc; i++)
{
double s;
const char *p;
if (! xstrtod (argv, &p, &s, c_strtod)
/* Nonnegative interval. */
|| ! (0 <= s)
/* No extra chars after the number and an optional s,m,h,d char. */
|| (*p && *(p+1))
/* Check any suffix char and update S based on the suffix. */
|| ! apply_suffix (&s, *p))
{
error (0, 0, _("invalid time interval %s"), quote (argv[i]));
ok = false;
}

seconds += s;
}

vielleicht weißte ja wo hier der eigentlich zähler versteckt is, i habs beim überfliegen net gfunden
... nur ein weiterer tag im leben eines naren ... :P

8

27.04.2006, 09:36

hi leute!
hab mein problem schon gelöst.
wollte ja mit dem RS232 Port etwas machen. In C wurde es angesteuert, es konnte senden und konnte empfangen, getrennt gings nicht mehr. der grund:
dieses ding braucht nach ausführung eine kurze pause um eingang oder ausgang definieren zu können. jetzt funktioinert. habs mit einer do schleife in c gelöst und hab 2 usleep pausen reingesetzt!

danke für eure hilfe!

CE

9

27.04.2006, 17:43

Zitat

Original von capoeira
vielleicht weißte ja wo hier der eigentlich zähler versteckt is, i habs beim überfliegen net gfunden

Nee, da haste offensichtlich die Parameterprüfung erwischt. Das Warten selbst ist wohl hier drin:

Quellcode

1
if (xnanosleep (seconds))
Letztlich wird da eine Routine namens "nanosleep" aufgerufen, und die arbeitet mit signal, siginterrupt etc., die (denke ich mir) die RTC benutzen. Genauer angesehen habe ich mir die entsprechenden man-Pages aber nicht.

Gruß
Rudi
Seien Sie vorsichtig mit Gesundheitsbüchern - Sie könnten an einem Druckfehler sterben. [Mark Twain]