gpt4 book ai didi

c - 有时HPUX和Solaris中的LD_PRELOAD无法生效

转载 作者:太空宇宙 更新时间:2023-11-04 04:03:49 25 4
gpt4 key购买 nike

我遇到了一些关于 LD_PRELOAD 的问题。

当我在HPUX和Solaris中使用LD_PRELOAD时,我发现我无法在/usr/bin/touch中附加我的open64/open/creat64/creat函数,但是我的unlink在/usr/bin/rm中却可以生效,为什么?

我做了一个简单的测试:

int open(int fd, int flag, mode_t mode) 
{
return -1;
}

int open64(int fd, int flag, mode_t mode)
{
return -1;
}

int creat(int fd, mode_t mode)
{
return -1;
}

int creat64(int fd, mode_t mode)
{
return -1;
}

当我这样做的时候,我发现:正常情况下,我无法打开文件,但是触摸可以打开!

为什么!我为此疑惑了好久。谁能帮帮我。thx

最后,抱歉我的英语不好

最佳答案

我认为你的函数签名是错误的。 (int 而不是 char *)在我的系统上,我看到以下签名:

grep -w creat/usr/include/*

/usr/include/fcntl.h:#define    creat64     creat
/usr/include/fcntl.h:extern int creat(const char *, mode_t);

grep -w 打开/usr/include/*

/usr/include/fcntl.h:#define    open64      open
/usr/include/fcntl.h:extern int open(const char *, int, ...);

关于c - 有时HPUX和Solaris中的LD_PRELOAD无法生效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8635730/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com