jest ona wymieniona w ftok() ręcznegoKtóry plik powinien przekazać jako argument Ścieżka ftok()
key_t ftok(const char *pathname, int proj_id);
ftok() funkcja wykorzystuje tożsamość pliku o nazwie podanej ścieżki (który musi odwołaj się do istniejącego, dostępnego pliku) ...
Jestem zdezorientowany około const char *pathname
.
Jaka byłaby najlepsza praktyka? W moim obecnym systemie mogę zdać "/home/Andrew/anyfile"
, ale nie jest możliwe, że inne systemy, na których mój program musi działać, będą miały ten plik.
Co powiesz na używanie "/etc/hosts/"
lub "/etc/inittab"
, ponieważ jestem pewien, że wszystkie takie systemy będą miały te dwa pliki? Czy to dobry pomysł? Czy to może spowodować jakiś problem?
Nie chcę prosić użytkownika o podanie nazwy pliku w czasie wykonywania lub przekazać nazwę pliku jako argument wiersza poleceń.
Czy istnieje inny inny i lepszy sposób, aby zdecydować pathname
?
Która droga jest najlepsza i najbardziej niezawodna?
Dzięki za poświęcony czas.
Lepszy sposób na co? Niezawodny za co? - Może lepiej opisać zadanie, do którego ma zostać użyty ftok? – pmod
@Pmod: Właściwie potrzebuję kolejki, aby moje dwa programy mogły się ze sobą komunikować. Rzeczą, która mnie zdezorientowała, jest to, który plik powinienem przekazać ftok(), który zawsze będzie obecny. [Ta odpowiedź] (http://stackoverflow.com/questions/3155291/which-file-should-i-pass-as-pathname-argument-of-ftok/3155312#3155312) mówi, że dobrze jest przekazać ''/etc ". Jeśli tak, to dlaczego ludzie przekazują inne pliki? Czy nie jest łatwo i lepiej przekazać jeden z plików systemowych? –
Kiedy mieliśmy podobne zadanie (zorganizowana komunikacja między dwoma programami w Linuksie za pomocą kolejki komunikatów) - użyliśmy pliku. Pierwszy program (który jest jak serwer - zawsze działa) tworzy plik z komunikatem id, następnie drugi (program użytkownika) odczytuje identyfikator msg z tego pliku i ma dostęp do kolejki. – pmod