crontab的相对路径的问题

博客讲述了在使用crontab执行脚本时遇到的相对路径问题,导致程序无法找到文件而形成死循环。作者通过日志调试发现问题在于crontab不会进入脚本所在路径,解决方案是使用绝对路径或者在程序开始时使用chdir()函数切换到脚本目录。
摘要由CSDN通过智能技术生成

1、背景

最近写了一个小程序,读取相对路径下的文件,部分代码如下:

bool read(const char*path)
{
        ifstream fin(path);
	string strLine;
	while(!fin.eof())
	{
		getline(fin, strLine);
		if(strLine.empty())
		{
			continue;
		}
	}
	fin.close();
	return true;
}

int main(void)
{
    read("./config.ini");
    return 0;
}
gdb调试均ok,于是放到crontab中去运行。结果第二天过来看,发现程序依然在跑着?!擦,肯定是有shi循环了。

2、问题

咋回事呢?gdb调试一切ok,貌似木有问题啊。没办法,祭出利器——log调试。发现程序一直在while(!fin.eof())处纠结(一直返回false),蛋疼……为啥呢?

亲(擦,淘宝体了),如果config.ini文件不存在,程序会形成死循环,fin.eof()永远返回false。

但是config.ini文件明明是存在的啊,gdb也是ok的。各种头疼,囧,org……

<
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值