1 实现批量ping代码
python实现:
1 import os
2 for i in range(1,6):
3 ret=os.system('ping -c 1 -W 1 192.168.100.%d &> /dev/null' % i)
4 if not ret:
5 print 'ping 192.168.100.%d ok' % i
#!/usr/bin/env python
#coding:utf-8
import os
v=('192.168.100.%d' % (x) for x in range(1,6))
for it in v:
ret=os.system('ping -c 1 -W 1 %s &> /dev/null' % it)
if ret:
print 'ping %s fail' % it
else:
print 'ping %s ok' % it
shell实现:
1 #!/bin/bash
2
3 for i in {1..254}
4 do
5 if ping -c 1 -W 1 192.168.1.$i &> /dev/null
6 then
7 echo 192.168.1.$i
8 fi
9 done
2 windows系统访问linux系统主机上的文件的小脚本
1 open 服务IP
2 user 用户名 密码
3 bin
4 prompt
5 cd 文件路径
6 lcd 本地路径
7 mget *
8 bye
9 exit
保存为.bat文件,执行:ftp -n -s:".bat"
3 c++线程封装(收藏自http://bbs.chinaunix.net/thread-3754383-2-2.html)
1 #include <my_pthread.h>
2 #include <stdio.h>
3
4 struct foo
5 {
6 int n;
7 void *test(void *arg)
8 {
9 for(int i = 0; i < 10; ++i)
10 printf("%d \n", ++n);
11 return NULL;
12 }
13 };
14
15 int main()
16 {
17 foo f;
18 pthread_t id;
19 my_pthread_create(&f, &id, NULL, &foo::test, NULL);
20 pthread_join(id, NULL);
21 return 0;
22 }
以下为 my_pthread.h
1 #ifndef INC_THREAD_PROXY_H_
2 #define INC_THREAD_PROXY_H_
3
4 #include <pthread.h>
5 #include <semaphore.h>
6
7 template <class T>
8 class thread_proxy_imp
9 {
10 protected:
11 typedef struct
12 {
13 void *(T::*start_routine_)(void *);
14 void *arg_;
15 T *obj_;
16 sem_t sem_;
17 } thread_param;
18
19 static void *thread_proxy_entry(void *arg)
20 {
21 thread_param *param_ptr = reinterpret_cast<thread_param *>(arg);
22 thread_param param = *param_ptr;
23 sem_post(¶m.sem_);
24 return (param.obj_->*param.start_routine_)(param.arg_);
25 }
26
27 public:
28 int create(
29 T *obj,
30 pthread_t *thread,
31 const pthread_attr_t *attr,
32 void *(T::*start_routine) (void *),
33 void *arg)
34 {
35 int rt;
36 thread_param param = {start_routine, arg, obj};
37
38 sem_init(¶m.sem_, 0, 0);
39 rt = pthread_create(thread,
40 attr,
41 thread_proxy_imp::thread_proxy_entry,
42 reinterpret_cast<void *>(¶m));
43 if(rt == 0) sem_wait(¶m.sem_);
44 sem_destroy(¶m.sem_);
45 return rt;
46 }
47 };
48
49
50 template<class T>
51 int my_pthread_create(
52 T *obj,
53 pthread_t *thread,
54 const pthread_attr_t *attr,
55 void *(T::*start_routine) (void *),
56 void *arg)
57 {
58 return thread_proxy_imp<T>().create(obj, thread, attr, start_routine, arg);
59 }
60
61 #endif
原文链接: https://www.cnblogs.com/moonlove/archive/2012/05/24/2517328.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/51065
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!