免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1452 | 回复: 0
打印 上一主题 下一主题

[新手入门] Time [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-03-31 20:28 |只看该作者 |倒序浏览
计时器
睡眠函数
unsigned int sleep(unsigned int seconds);
例:
#include XXXX
int main()
{
time_t dt;
time(&dt);
printf("%s begin at:%s\n",__FILE__,ctime(&dt));
puts("sleep for 5 seconds....");
sleep(5);
time(&dt);
printf("%s end at:%s\n",__FILE__,ctime(&dt));
return 0;
}
管道
创建管道
int pipe(int fd[2]);
fd[0]用于读
fd[1]用于写
例:
int z;
int fd[2];
if((z==pipe(&fd[0])))==-1)
{
perror("pipe");
exit(1);
}
printf("fd[0]=%d for reading\n",fd[0]);
printf("fd[1]=%d for writing\n",fd[1]);
将管道打开到其他进程
FILE *popen(const char *command,const char *mode);
int pclose(FILE *stream);
mode:只能为"r"或"w"
一定要用popen打开管道,以便从进程读取数据或把数据写到进程,但不能同时进行读写.
从管道读数据
例:打开一个管道到ps命令并读取管道信息
#include
#include
int main()
{
char buf[256];
FILE *p;
p=popen("ps -l","r");
if(!p)
{
perror("popen");
exit(1);
}
while(fgets(buf,sizeof(buf),p)!=0)
fputs(buf,stdout);
if(pclose(p))
{
perror("pclose");
exit(1);
}
return 0;
}
把数据写到管道
当前进程把数据写到管道时管道另一端的进程就会从它的标准输入读取数据
例:
#include
#include
#include
#include
#include
int main(int argc,char **argv)
{
struct passwd *pw=0;
char cmd[256];
FILE *p=0;
if(!(pw=getpwuid(geteuid()))
{
perror("getpwuid");
return 13;
}
sprintf(cmd,"mail -s 'a message from process id %ld' %s",(long)getpid(),pw->pw_name);
if(!(p=popen(cmd,"w")))
{
perror("popen");
return 13;
}
fprintf(p,"this is command %s speaking\n",argv[0]);
fprintf(p,"i am operating in the \n",argv[0]);
}

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/56374/showart_513061.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP