内容: 系统标识 时间与日期 多进程编程 1. 系统标识符 a.获得有关的系统信息 #include
int uname( struct utsname * name);// 用 man uname 查看 struct utsname b.获得系统的名称 #include
int gethostname( char* name, int namelen ); // 成功返回 0, 否则返回 1 例子: #include
#include
#include
using namespace std; int main(){ cout<<"-------------- hostname ------------"<
struct tm, localtime(),gmtime() // man localtime to see the struct tm cout<<"-----------struct tm-----------"<
tm_year+1900 <
tm_mon+1 <
tm_mday <
time_t cout<<"-----------mktime-----------"<
char * cout<<"-----------ctime-----------"<
char * cout<<"-----------asctime-----------"<
formated char* cout<<"-----------strftime-----------"<
int system( const char * string ); 执行string 所表示的命令,将产生一个新的进程,system为阻塞函数, 新的进程结束后才继续 例子: #include
#include
using namespace std; int main(){ cout<<"----------begin---------"<
#include
using namespace std; int main(){ char cmd[ 100 ]; memset( cmd, 0x00, sizeof( cmd ) ); while( 1 ){ cout<<"[irini@localhost]#"; cin.getline( cmd,sizeof( cmd ) ); if( strcmp( cmd,"bye" )==0 ) break; system( cmd ); } return 0; } 4. atexit() 函数 #include
int atexit( void (*func) (void) ); 登记exit handler,最多可登记32个,在进程退出时最后登记的先调用,最先登记的最后调用 5. exit 与 _exit * 进程的退出过程: 进程做的事: exit handler( atexit注册的), 关闭IO流,如果申请了堆空间就释放 ------------------------------------------------------------------ kernel做的事: 销毁进程空间, 删除进程表中的相应项 * exit 是正常退出,想做进程的,然后进入kernel处理 _exit 是异常退出,直接进入kernel 例子: #include
#include
using namespace std; void fn1(){ cout<<"in fn1()..."<
#include
pid_t getpid(); // 当前进程号 pid_t getppid(); // 得到父进程号 例子: #include
#include
#include
using namespace std; int main(){ cout<<"pid="<
<
#include
#include
using namespace std; void fn(){ cout<<"in fn()... "<
#include
pid_t wait( int * statloc ); pid_t waitpid( pid_t pid, int *static, int option ); 返回值为子进程的pid statloc 用于接受终止的子进程的返回状态 option 通常设为0 例子: #include
#include
#include
#include
using namespace std; int main(){ pid_t cid=fork(); if( cid==0 ){ sleep( 3 ); cout<<"[child] pid="<
<<" ppid="<
<
0 ){ cout<<"[father] pid="<
<<" cid="<
<
#include
using namespace std; int main(){ cout<<"-------------begin-----------"<
unix_c++学习笔记
最新推荐文章于 2021-05-04 06:59:35 发布