网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
01月07日漏签0天
c语言吧 关注:801,743贴子:4,374,749
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 4回复贴,共1页
<<返回c语言吧
>0< 加载中...

求助求助大佬们(问题不太好描述)

  • 只看楼主
  • 收藏

  • 回复
  • milk192735
  • 大能力者
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
首先是操作系统和编译器分别是MACOS和Xcode(不知道问题和这两个有没有关系,先写上去再说)
我的代码中有一个文件读写的功能(图1为相关代码片段)
运行代码前,可执行文件同目录下没有其他文件(图2)
第一次,在Xcode里面运行(图3),被写入的文件名叫new
运行完后,可执行文件同目录成功创建了"new.csv"(图4)
接下来,我删除了"new.csv"(图5)
第二次运行改为直接运行可执行文件,在弹出的终端进行输入(图6)
运行完成,但是可执行文件同目录下没有出现"new1.csv"(图7)
但是"new1.csv"事实上已经成功创建,但是位置不太对,在用户文件夹的mac文件夹里面(图8)
我不知道我的问题描述清楚了没有
总之我想知道为什么在Xcode上面运行和直接运行可执行文件会有不同的结果,以及这种情况怎么解决(我希望直接运行可执行文件也在同目录下创建文件,而不是mac的路径)









  • GTA小鸡
  • 吧主
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
这个提问方式很专业,给你点个赞


2026-01-07 18:59:57
广告
不感兴趣
开通SVIP免广告
  • GTA小鸡
  • 吧主
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
你需要了解两个概念,相对路径和工作目录。在unix系统中,以/开头的路径称为绝对路径,否则称为相对路径。路径指示操作系统如何定位一个文件。当你在fopen中传递一个文件名时,它成为一个相对路径,操作系统会相对于“某个目录”来解析此路径。举几个例子:
file.txt: 操作系统会在“某个目录”下寻找名为file.txt的文件
abc/file.txt: 操作系统会在“某个目录”下寻找名为abc的子目录,然后在这个目录下寻找名为file.txt的文件
../abc/file.txt: 操作系统会在“某个目录”的上级目录下寻找名为abc的目录,然后在这个目录下寻找名为file.txt的文件
那么,“某个目录”指的是什么?是工作目录。工作目录是操作系统中一个非常重要且基础的概念,每个进程都有它自己的工作目录,在进程启动时指定。为什么你的程序在Xcode中运行和在终端中运行时创建文件的位置不一样?因为它启动时指定的工作目录不一样。Xcode启动你的程序时,会指定程序所在目录作为它的工作目录;而你在终端中运行程序时,终端的shell当前所在的目录会成为程序的工作目录。
如何在程序中获取它当前的工作目录?使用getcwd()函数,位于头文件unistd.h中。


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 4回复贴,共1页
<<返回c语言吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示