如何在循环中暂停

tommycpma 2004-03-29 05:26:19
我才学c for linux 不太明白sleep的机制
我想做一个服务器端程序 每隔N秒执行一遍某个功能
我是这么写的
while(1){
sleep(10);
printf("haha\n");
}
可惜一到sleep(10)就停了
我该怎么做才能实现我说的功能?
谢谢!
...全文
78 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
fierygnu 2004-03-30
  • 打赏
  • 举报
回复
Advanced Programming for UNIX Environment

man stdio
tommycpma 2004-03-30
  • 打赏
  • 举报
回复
APUE 说的详细点 不要笑我白吃 APUE是什么东西?:)
tommycpma 2004-03-30
  • 打赏
  • 举报
回复
有相关的连接吗?我搜 输出缓冲 没搜到任何相关的资料
fierygnu 2004-03-30
  • 打赏
  • 举报
回复
楼主买本APUE看看吧。
jack_wq 2004-03-30
  • 打赏
  • 举报
回复
如果加上'\n'就好了,应该是缓冲区缓冲方式的问题,默认的应该是行缓冲!
jack_wq 2004-03-30
  • 打赏
  • 举报
回复
我觉得问题应该和sleep没有关系的!
tommycpma 2004-03-30
  • 打赏
  • 举报
回复
果然加了\n以后就好了 其中的奥密哪位老大说说哟!
tommycpma 2004-03-30
  • 打赏
  • 举报
回复
和缓冲区有关系吗?
我把sleep(1)去掉 立刻就看到显示了
我也不知道缓冲区有多大
我等了10分钟
还是没有输出 不明白咯
growup 2004-03-30
  • 打赏
  • 举报
回复
<< printf("m");
>> printf("m\n");

记得有一贴子讨论过这个输出缓冲的问题,行结束或输出缓冲满才会被打印。
但是不明白你的第一段代码也这样?
tommycpma 2004-03-30
  • 打赏
  • 举报
回复
运行的时候打印出 Connect is successed! 然后光标就闪闪闪 什么反应也没有
tommycpma 2004-03-30
  • 打赏
  • 举报
回复
#include "/usr/include/mysql/mysql.h"
#include <stdio.h>
int main(){

MYSQL mysql;
MYSQL_RES *result;
MYSQL_ROW row;
unsigned int num_rows;
char* host="localhost";
char* user ="";
char* pw = "";
char* db = "mysql";
char* sql = "select * from user";

mysql_init(&mysql);
if(!mysql_real_connect(&mysql,host,user,pw,db,0,NULL,0)){
printf("Failed to connect to database");
}
else{
printf("Connect is successed!\n");
}

while(1)
{
sleep(1);
printf("m");
//usleep(250000);
}
mysql_query(&mysql,sql);
result = mysql_store_result(&mysql);
mysql_num_fields(result);
while((row=mysql_fetch_row(result))){
printf("%s\n",row[1]);
}
mysql_close(&mysql);
return 0;
}
这是我的源代码,我也不明白怎么回事儿,我是Red hat9.0在win2000虚拟机里运行的
tommycpma 2004-03-30
  • 打赏
  • 举报
回复
我也不知道那里出错了 反正那句printf什么也没打出来 光标一个劲儿的闪
wxywh 2004-03-29
  • 打赏
  • 举报
回复
你做的对呀.
yi2001 2004-03-29
  • 打赏
  • 举报
回复
十秒钟呢,等一下吧。
yuanlei1978113 2004-03-29
  • 打赏
  • 举报
回复
你的循环挺正常的。
rzsheng 2004-03-29
  • 打赏
  • 举报
回复
是停在这句话了,还是你说的循环退出了?

icedust 2004-03-29
  • 打赏
  • 举报
回复
不可能
一定是你哪里搞错了

23,125

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧