首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >stat返回ENOENT

stat返回ENOENT
EN

Stack Overflow用户
提问于 2012-09-18 21:22:23
回答 1查看 2K关注 0票数 0

我正在运行以下程序,该程序使用stat()检查文件是否存在。但是,当我传递一个路径时,比如$HOME/file.sh,它会失败并返回ENOENT错误。但是当我传递扩展路径,即/root/file.sh时,stat()返回成功,即退出代码0。

代码语言:javascript
复制
int main ()
{
    struct stat statbuf;
    char path [1024];
    strcpy(path,"$HOME/file.sh");

    int rc = stat(path,&statbuf);

    if (rc == -1 )
    {
        printf ("File not found !!\n");
    }
    else
        printf("Found it !!\n");

    return 0;
}
EN

回答 1

Stack Overflow用户

发布于 2012-09-18 21:24:48

strcpy()不会将环境变量$HOME展开为它的值,但会复制指定的提取字符串文字。您可以使用getenv()获取$HOME的值。

将失败消息更改为:

代码语言:javascript
复制
printf("File not found: %s\n", path);

以供确认。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12477936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档