gnu coreutils4.5.1 yes.c源码解读

本文尝试编译并理解一个简单的循环程序,通过修改循环次数及输出内容观察程序行为。作者遇到了编译错误,并决定专注于理解代码逻辑而非解决编译问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


这个命令的代码真短。核心意思是
      while (1)
 {
   int i;
   for (i = 0; i < UNROLL; i++)
     puts ("y");
   if (ferror (stdout))
     break;
 }

为看到效果,于是我在本地进行编译,,并把循环次数改成100,加上打印helloworld1,表示是修改的版本。

sudo make && make install
./yes
可惜找不到,原来编译出错了。弄清编译错误,太花时间了。有人本想读源码,结果把大部分时间弄在搭环境上,等环境搭好,可能又不想读代码了。我呢,编译不了,就算了,我要重点放在代码上。
这个程序就是循环一万次,也许新版本循环时间更长,但我等不了,试验了两次,就表示读完了。下一个程序吧。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值