⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 a_who.cpp

📁 一个不错
💻 CPP
字号:
/* Copyright is licensed under GNU LGPL.                 by I.J.Wang 2005  Simulate shell command who  Build: make a_who*/#include "../src/wy_uty.h"#include "../src/wyregfile.h"#include "../src/wydate.h"#include <utmp.h>// print text of ubufWyRet dump_info(struct utmp& ubuf)try { if(ubuf.ut_type!=USER_PROCESS) {   return(Ok); } WyStr str; str=ubuf.ut_user; str.resize(8,' '); str+=' ';   str+=ubuf.ut_line; str.resize(14,' '); str+=' '; str+=ubuf.ut_host; str.resize(20,' '); str+=' '; WyTimeSpec utm(ubuf.ut_tv.tv_sec,ubuf.ut_tv.tv_usec*1000); str+=Wy::wrd( WyDate(Wy::local_tzname(),utm) );  Wy::cout << str << '\n'; return(Ok);}catch(const WyStr::Reply& e) { WY_RETURN(e);}catch(const WyByteFlow::Reply& e) { WY_RETURN(e);}catch(const WyRet& e) { throw;}catch(...) { WY_TERMINATE("unknown throw type");};int main(void)try { WyRet r; size_t n_rd; struct utmp ubuf; WyRegFile ufile(UTMP_FILE,O_RDONLY); for(;;) {   if((r=Wy::full_read(ufile,&ubuf,sizeof(ubuf),n_rd))!=Ok) {     WY_THROW(r);   }   if(n_rd!=sizeof(ubuf)) {     if(n_rd==0) {       break;     }     WY_THROW( WyRet(Wym_EIO) );   }   if((r=dump_info(ubuf))!=Ok) {     throw(r);   } }; return(0);}catch(const WyRet& e) { if(e!=Ok) {   Wy::cerr << Wy::wrd(e) << '\n'; } return e->c_repcode();}catch(...) { Wy::cerr << "main caught(...)\n"; return(-1);};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -