扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
find /data/paic/backup提交问题/aaa -mtime -day1 -mtime +day2 -name "abc_*.txt" -print0 | xargs -I {} mv {} /data/paic/backup/201303/
专注于为中小企业提供成都网站设计、成都网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业芙蓉免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了近1000家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
查找day1天内day2天前的文件,具体天数需要仔细测试调整一下了。。
比如今天是2013-12-3
find /data/paic/backup提交问题/aaa -mtime -4 -mtime +2 -name "abc_*.txt" | xargs -I {} ls -lrt {}
查找/data/paic/backup提交问题/aaa 目录下2013-11-29到2013-12-01号的名字符合 abc_*.txt的文件
-mtime modified time
-atime access time
-ctime change time
[root@server187 ~]# ls -lrt [^ace135]*.txt
-rw-r--r-- 1 root root 0 Sep 4 10:09 b.txt
[root@server187 ~]# ls -lrt [ace135]*.txt
-rw-r--r-- 1 root root 0 Sep 4 10:07 123.txt
线程构建模块(TBB)使您可以轻松编写并行C ++程序,这些程序可充分利用多核性能,可移植且可组合,并具有面向未来的可扩展性。
广泛用于任务并行的C ++模板库。
并行算法和数据结构,可扩展的内存分配和任务调度。
丰富的通用并行功能集,C ++; Windows *,Linux *,OS X *和其他操作系统
选择一个稳定版本即可,我用的是tbb-2018_U3
tar -zxvf tbb-2018_U3.tar.gz
cd tbb-2018_U3
make
我的编译器未报错
若编译期间报出以下错误:
/tmp/ccxNhOc9.s: Assembler messages:
/tmp/ccxNhOc9.s:615: Error: no such instruction: `xtest'
/tmp/ccxNhOc9.s:643: Error: no such instruction: `xabort $255'
/tmp/ccxNhOc9.s:652: Error: no such instruction: `xabort $255'
/tmp/ccxNhOc9.s:658: Error: no such instruction: `xend'
/tmp/ccxNhOc9.s:825: Error: no such instruction: `xbegin .L56'
/tmp/ccxNhOc9.s:988: Error: no such instruction: `xbegin .L71'
/tmp/ccxNhOc9.s:1216: Error: no such instruction: `xabort $255'
make[1]: *** [x86_rtm_rw_mutex.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory `/user_data/.tmp/linux_intel64_gcc_cc4.9.1_libc2.12_kernel2.6.32_debug'
make: *** [tbb] Error 2
则表明当前的gcc编译器不支持-mrtm。则可行的方案是注释以下几行。打开tbb目录build/linux.gcc.inc文件,注释以下几行。
# gcc 4.8 and later support RTM intrinsics, but require command line switch to enable them
ifneq (,$(shell gcc -dumpversion | egrep "^4\.[8-9]"))
RTM_KEY = -mrtm
#endif
cd build
chmod +x*.sh
sh generate_tbbvars.sh
sh tbbvars.sh
cd linux_intel64_gcc_你的版本_release
cp *.so /usr/lib64
cp *.so.2 /usr/lib64
ldconfig
//回到解压缩目录下
cp -r include/* /usr//include
//进入解压目录下的examples目录
make
经过一段时间运行如下说明测试通过
serial run time = 0.21682
parallel run time = 0.0694263
elapsed time : 0.444736 seconds
make[1]: Leaving directory `/home/heweiwei/test/tbb-2018_U3/examples/pipeline/square'
------------------------ test_all/fibonacci/all ------------------------
make -C test_all/fibonacci -f Makefile all CXX="g++"
make[1]: Entering directory `/home/heweiwei/test/tbb-2018_U3/examples/test_all/fibonacci'
g++ -O2 -DNDEBUG -m64 -L/home/heweiwei/test/tbb-2018_U3/examples/../build/linux_intel64_gcc_cc4.8.5_libc2.17_kernel3.10.0_release -L/home/heweiwei/test/tbb-2018_U3/examples/../build/linux_intel64_gcc_cc4.8.5_libc2.17_kernel3.10.0_debug -o fibonacci Fibonacci.cpp -ltbb -lpthread -lrt -lrt
./fibonacci
TEST PASSED
make[1]: Leaving directory `/home/heweiwei/test/tbb-2018_U3/examples/test_all/fibonacci'
#include tbb/tbb.h
#includeiostream
using namespace std;
using namespace tbb;
int main()
{
int i = 0;
concurrent_queueint s_tbb_queue;
for (i = 10; i 15 ; i ++)
{
s_tbb_queue.push(i);
}
concurrent_queueint::iterator iter;
for(iter = s_tbb_queue.unsafe_begin() ; iter != s_tbb_queue.unsafe_end() ; iter++)
{
cout"value="*iterendl;
}
cout"queue_size="s_tbb_queue.unsafe_size()endl;
int tmp = 0;
bool res = 0;
for (i = 0; i 8 ; i++)
{
res = s_tbb_queue.try_pop(tmp);
if(res)
{
cout"pop_value="tmpendl;
}
else
{
cout"queue is empty"endl;
}
}
cout"queue_size="s_tbb_queue.unsafe_size()endl;
return 0;
}
运行
[heweiwei@heweiwei tbb_test]$ ./a.out
value=10
value=11
value=12
value=13
value=14
queue_size=5
pop_value=10
pop_value=11
pop_value=12
pop_value=13
pop_value=14
queue is empty
queue is empty
queue is empty
queue_size=0
RTC时间操作:
1.rtc时间是由rtc硬件控制的,所以在linux中想要修改和获取rtc时间就只能通过驱动的接口来获取和修改。
intrtc_test(void)
{
structrtc_timertc;
intfd=-1;
intret=-1;
fd=open("/dev/rtc0",O_RDWR);
if(fd0){
return-1;
}
ret=ioctl(fd,RTC_RD_TIME,rtc);
if(ret0){
return-1;
}
printf("\nCurrentRTCdata/timeis%d-%d-%d,%02d:%02d:%02d.\n",rtc.tm_mday,rtc.tm_mon+1,
rtc.tm_year+1900,rtc.tm_hour,rtc.tm_min,rtc.tm_sec);
ret=ioctl(fd,RTC_SET_TIME,rtc);
if(ret0){
return-1;
}
return0;
}
2.除了上面这种方式操作rtc时间以外,linux中也有一个命令可以简化rtc时间操作,hwclock,比如,可以通过system("hwclock-w");系统调用来把xtime设置到rtc硬件。
墙上时间(realtime、xtime):
linux系统中主要使用的就是xtime,它是系统运行的基础,很多程序都是依赖于xtime来运行的,接下来将介绍将如何操作xtime。
1.获取、设置微秒级别的时间:
#include
#include
structtimeval
{
inttv_sec;
inttv_usec;
};
intgettimeofday(structtimeval*tv,structtimezone*tz);
intsettimeofday(conststructtimeval*tv,conststructtimezone*gz);
功能描述:
gettimeofday()获取当前时间,有tv指向的结构体返回。
settimeofday()把当前时间设成由tv指向的结构体数据。当前地区信息则设成tz指向的结构体数据。
2.获取秒级别的时间
typedeflongtime_t;
time_ttime(time_t*t);
如果t是non-null,它将会把时间值填入t中
3.内核2.6版本后新增的clockapi接口
获取纳秒级别的时间
structtimespec{
time_ttv_sec;/*秒s*/
longtv_nsec;/*纳秒ns*/
};
intclock_getres(clockid_tclk_id,structtimespec*res);
intclock_gettime(clockid_tclk_id,structtimespec*tp);
intclock_settime(clockid_tclk_id、conststructtimespec*tp);
编译连接时采用-lrt才能编译通过。
clk_id可选参数:
CLOCK_REALTIME
系统全局的实时时钟.设置此时钟需要合适的权限.
CLOCK_MONOTONIC
只能被读取,无法被设置,表示monotonic时间起点.
CLOCK_PROCESS_CPUTIME_ID
从cpu每进程的高分辨率计时器.
CLOCK_THREAD_CPUTIME_ID
线程的特定cpu时间时钟.
系统启动时,会首先从rtc中读取rtc时间,并设置给xtime,而当ntp对系统时间进行更新时,首先设置xtime,然后调用hwclock设置到rtc硬件中。xtime根据需要的精度,可以通过上面几个接口来选择使用。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流