-
Fototrend

Új hozzászólás Aktív témák
-
orgonista
csendes tag
Sziasztok!
A gnuplotot szeretném egy shell szkriptből vezérelni egy named pipe-on keresztül linux alatt. Hogy a gnuplot ne lépjen ki az első átküldött utasítás után, a következő programot írtam, ami kiszűri az EOF-okat az adatfolyamból:
// eoftalanit.c
# include <stdio.h>
main() {
int a;
while (1) {
a = getc(stdin);
if (a == EOF) {
putc('\n', stdout);
} else {
putc(a, stdout);
}
}
}
Létrehozom a pipe-file-t:
$ mkfifo namedpipe
és ráakasztom a gnuplotot:
$ eoftalanit <namedpipe | gnuplot &
utána küldhetem az utasításokat bele:
$ echo 'test' >namedpipe
Eddig ok, az utasítás lefut és a programom várja a következő utasítást, ám közben a ciklus körbe-körbe jár. Mindig EOF-ot olvas és újsort küld a gnuplotnak, ezzel felzabál a kettő együtt kb. 90% proc. időt. Az érdekes számomra az, hogy az első getc(stdin) hívás még szépen vár míg küldök valamit, a ciklus csak ezután fut folyamatosan.
A kérdésem az, hogy hogyan érhetem el, hogy miután megkapja az EOF-ot az utasítás végén, térjen vissza a kiindulási állapotba és a getc() várjon türelemmel a következő nem EOF-ra?
köszönöm: orgonista
[Szerkesztve]
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Dell Latitude 5400 14" FHD IPS, i5 8365U, 8-16GB RAM, SSD, számla, 6 hó gar
- BESZÁMÍTÁS! Gigabyte GTX 1050 OC 2GB videokártya garanciával hibátlan működéssel
- BESZÁMÍTÁS! 2TB Samsung 990 PRO NVMe SSD meghajtó garanciával hibátlan működéssel
- Samsung Galaxy S24 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- ÚJ Magic Keyboard billentyűzetek/ USB-C - Lighning/ 27% Áfás/ Ingyenes szállítás!
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

