if (strcmp(path, "/dev/urandom") == 0) {
return real_open64("/dev/zero", flags, mode);
} else {
return real_open64(path, flags, mode);
}
Első ötletem:
sed_repl 's/^open/szabodj_meg_open/' ./regress/nonrandomopen.c
- NevemTeve blogja
- A hozzászóláshoz be kell jelentkezni
- 956 megtekintés
Hozzászólások
FreeBSD-n elvileg fordul (legalábbis semmi patch nincs benne).
- A hozzászóláshoz be kell jelentkezni
Még nem néztem meg rendesen, de első ránézésre olyan, mintha Ifjabb Vér István csinálta volna: saját megjobbított open/open64 függvényeket definiál, amelyek azért hívják az igazikat (vö: dlsym/RTLD_NEXT). Namostan a gond ott van, hogy az 'open' az 'open64' lesz, mire a gcc megírja az Assembly-t.
- A hozzászóláshoz be kell jelentkezni
off
Te legalább tudod, mit csinálsz. Én sötétben tapogatózom. Épp az mpd nem fordul OpenWrt/LEDE-re, de terveim szerint addig ütöm, amíg átverem a compileren. :)
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
No majd meséljünk, ha lesz fejlemény...
Egyébként használhatnám a zip(1) programot is (system vagy popen függvénnyel, temporális fájlokkal), de azért a libzip jobb lenne.
- A hozzászóláshoz be kell jelentkezni
Mit írsz C-ben (ha nem titok) ?
- A hozzászóláshoz be kell jelentkezni
Logfájl figyelést: bizonyos időnként statisztikai jelentést küld a program emailben. Ezt éveken át, leállás nélkül (tehát nem crontab-bal.) Az emailhez mostantól csatolmány is lesz.
- A hozzászóláshoz be kell jelentkezni
Nekem már lefordult, csak valami kulcs hiánya miatt(?) nem tudott indexet csinálni, s a csomagkezelőt nem tudom rászedni, hogy telepítse is. Kis lépésekkel haladok... most épp aludni. ;)
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
.
- A hozzászóláshoz be kell jelentkezni
csak megnéztem tesztre. Egy sima Centos7 alatt libzip.org -ról libzip-1.3.2
configure && make
Itt minden nyűg nélkül lefordult. Vagy nem erről a libzipről beszélünk? :)
- A hozzászóláshoz be kell jelentkezni
Hány biten? Largefile support-tal, vagy anélkül? Mit ad a következő parancs:
$ nm -g regress/nonrandomopen.o
U abort
U dlsym
U strcmp
0000000000000051 T szabodj_meg_open
000000000000018e T szabodj_meg_open64
- A hozzászóláshoz be kell jelentkezni
[root@centos7 libzip-1.3.2]# nm -g regress/nonrandomopen.o
U abort
U dlsym
0000000000000050 T open
00000000000000e0 T open64
ennyit.
Gondolom largefile supporttal, mivel nem adtam meg --disable-largefile -t configure-nak.
itt egy configure "log" https://pastebin.com/dBUCQy3X
itt pedig a teljes make folyamat: https://pastebin.com/pZvjexcb
És 64bit
- A hozzászóláshoz be kell jelentkezni
Ilyen szépség van nálam a /usr/include/fcntl.h-ban:
#ifndef __USE_FILE_OFFSET64
extern int open (const char *__file, int __oflag, ...) __nonnull ((1));
#else
# ifdef __REDIRECT
extern int __REDIRECT (open, (const char *__file, int __oflag, ...), open64)
__nonnull ((1));
# else
# define open open64
# endif
#endif
#ifdef __USE_LARGEFILE64
extern int open64 (const char *__file, int __oflag, ...) __nonnull ((1));
#endif
- A hozzászóláshoz be kell jelentkezni
Ez nálam is ugyan így néz ki:
#ifndef __USE_FILE_OFFSET64
extern int open (__const char *__file, int __oflag, ...) __nonnull ((1));
#else
# ifdef __REDIRECT
extern int __REDIRECT (open, (__const char *__file, int __oflag, ...), open64)
__nonnull ((1));
# else
# define open open64
# endif
#endif
#ifdef __USE_LARGEFILE64
extern int open64 (__const char *__file, int __oflag, ...) __nonnull ((1));
#endif
- A hozzászóláshoz be kell jelentkezni
Ekkor jön a cpp nevű komponens, és ilyet generál a __REDIRECT-ből:
extern int open (const char *__file, int __oflag, ...) __asm__ ("" "open64")
__attribute__ ((__nonnull__ (1)));
Mondjuk azt be kell valljam, hogy az alábbiak mindegyikét globálisan beállítottam, hogy minden egzotikus program minden egzotikus platformon értsen valamelyikből:
-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES
- A hozzászóláshoz be kell jelentkezni
Feliratkozom.
- A hozzászóláshoz be kell jelentkezni
Sajnos már nem nagyon lesz semmi érdekes: ettől az apróságtól eltekintve gond nélkül fordul+települ Linuxon és Aixon is.
- A hozzászóláshoz be kell jelentkezni