- 7142
- 积分
- 126
- 粉丝
- 103
- 获赞
- 143
- 评论
- 281
- 收藏
分类专栏
阻塞socket上read/write出现errno为EAGAIN的原因解密
cleanfield: 您好,非常感谢支出错误,我又做了实测,的确跟TCP_NODELAY没有什么关系,只跟设置timeout相关,另外在errno是EAGAIN的时候,wirte返回值是-1,不是0
静思过往: “如果设置了O_NODELAY而当前不可写,那么write接口会设置errno为EAGAIN,但是write接口会返回0而不是-1.” 我试验的结果缓冲区满写入,是返回-1啊
cleanfield: 注意+1000和x1之间有个空格
cleanfield: 可以参考这个脚本: time_change.sh #!/bin/bash target_time=`date -d "$1" +%s` now_time=`date +%s` time_flag=$(($target_time - $now_time)) if [ $time_flag -gt 0 ]; then echo "+$(($target_time - $now_time))" > faketime.rc else echo "$(($target_time - $now_time))" > faketime.rc fi 最后faketime.rc内容也就是一个偏移值 例如: +1000 x1 前面的+1000表示时间向前偏移1000秒,后面x1表示1倍速,也就是,x2表示2倍速
逐梦荷里活: faketime.rc文件的内容是怎么写啊?