stat

how to use lstat() to determine if hard link or not

帅比萌擦擦* 提交于 2020-06-02 06:05:10
问题 My OS is linux. I program in C. I know I can use the lstat() to recognize the soft link, i.e., use S_ISLNK(st.st_mode). But how can I recognize the link is hard link? if the link is hard link, it will be thought of as regular file. However, I also want to distinguish the regular file from the hard link. Are there any ways to handle this case? 回答1: But how can I recognize the link is hard link? You can't. A "hard link" isn't actually anything special. It's just a directory entry that happens

Redis中bitmap的妙用

北城以北 提交于 2020-04-06 16:41:34
在Redis中我们经常用到set,get等命令,细心的你有没有发现,还有几个相似的命令叫setbit,getbit,它们是用来干嘛的? BitMap是什么 就是通过一个bit位来表示某个元素对应的值或者状态,其中的key就是对应元素本身。我们知道8个bit可以组成一个Byte,所以bitmap本身会极大的节省储存空间。 Redis中的BitMap Redis从2.2.0版本开始新增了setbit,getbit,bitcount等几个bitmap相关命令。虽然是新命令,但是并没有新增新的数据类型,因为setbit等命令只不过是在set上的扩展。 setbit命令介绍 指令 SETBIT key offset value 复杂度 O(1) 设置或者清空key的value(字符串)在offset处的bit值(只能0或者1)。 空间占用、以及第一次分配空间需要的时间 在一台2010MacBook Pro上,offset为2^32-1(分配512MB)需要~300ms,offset为2^30-1(分配128MB)需要~80ms,offset为2^28-1(分配32MB)需要~30ms,offset为2^26-1(分配8MB)需要8ms。<来自官方文档> 大概的空间占用计算公式是:($offset/8/1024/1024)MB 使用场景一:用户签到 很多网站都提供了签到功能

STAT - 611 Assignment Gram-Schmidt

我们两清 提交于 2020-04-06 08:00:03
代写STAT - 611作业、代做C/C++程序作业、代写Gram-Schmidt作业、C/C++课程设计作业代写 STAT - 611 Assignment 6 Due Tuesday Dec 4th, 2018, in class. Remember (from syllabus): Solutions must be neatly word-processed (using Latex or a word processor) and stapled. Please annotate your work with brief, clear sentences explaining your approach and interpreting your results (you are not expected to write full-blown data analysis reports however). For assignments involving mathematical manipulations, students can write answers by hand provided penmanship is neat; illegible answers will be marked as incorrect. *All these questions

部分中断相关函数浅析

为君一笑 提交于 2020-04-05 23:37:12
1. /kernel/irq.c softirq_init 2.6.32.25 1.1 for_each_possible_cpu for ( ( ( cpu ) ) = - 1 ; ( ( cpu ) ) = cpumask_next ( ( ( cpu ) ) , ( cpu_possible_mask ) ) , ( ( cpu ) ) < nr_cpu_ids ; ) 1.2 per_cpu(tasklet_vec, cpu); //取per_cpu_tasklet_vec[cpu],即cpu的tasklet_vec结构。 per_cpu (tasklet_vec, cpu); ( * ( { unsigned long __ptr ; __ptr = ( unsigned long ) ( ( & per_cpu__tasklet_vec ) ) ; ( typeof ( ( & per_cpu__tasklet_vec ) ) ) ( __ptr + ( ( ( __per_cpu_offset [ cpu ] ) ) ) ) ; } ) ) ; 1.3 tasklet_vec / tasklet_hi_vec static DEFINE_PER_CPU( struct tasklet_head, tasklet_vec); static DEFINE_PER_CPU(

Memcached内存缓存技术

北战南征 提交于 2020-04-01 15:17:06
Memcached是什么,有什么作用? Memcached是一个开源的、高性能的内存缓存软件,从名称上看Mem就是内存的意思,而Cache就是缓存的意思。 Memcached通过在事先规划好的内存空间中临时缓存数据库中的各类数据,以减少业务直接对数据库的访问,从而减轻数据库的访问压力和网站集群的响应速度。 Memcached服务在企业集群架构中应用场景 1.作为数据库的前端缓存应用 完整缓存(易):例如商品分类,以及商品信息,可实现放到内存里,然后再对外提供数据访问。这个被称之为预热。用户访问时可以只读取memcached缓存,不读取数据库了。 热点缓存(难):需要前端程序配合。只缓存热点的数据,即缓存经常被访问的数据。先预热基础数据,然后再动态更新。程序先读取缓存,如果缓存里没有对应的数据,程序再去读取数据库,然后程序把读到的数据放入缓存。 特殊说明: 如果碰到电商秒杀等高并发的业务,一定要事先预热,或者其他思想实现,例如:秒杀只是获取资格,而不是瞬间秒杀到手商品。如果数据更新,要同时触发缓存更新,防止给用户过过期数据。 2.作为集群的session会话共享存储 优点:速度比files块,可以解决共用session问题 缺点:不能持久化,只能单点部署,多点数据无法同步,即使用hash分配节点,也会有session丢失 Memcached服务在不同企业业务应用场景中的工作流程 1

zookeeper java客户端使用

坚强是说给别人听的谎言 提交于 2020-03-21 14:51:51
3 月,跳不动了?>>> ZooKeeper是一个优秀的分布式协同工具,很多分布式项目都基于它进行架构设计,不过要想要对其有一个深入的理解(如果你想阅读其源代码),对其客户端API的熟悉必不可少。下面就简要记录一下ZooKeeper中各个API的简单用法。 这篇文章不打算对ZooKeeper的基本概念及安装进行讲解,想要了解这部分内容可以参考:http://zookeeper.apache.org/doc/r3.4.3/zookeeperOver.html , 或者可以参考:http://zookeeper.apache.org/doc/r3.4.3/zookeeperProgrammers.html 均是官方文档,这也是想要学习某个开源工具必须的先行步骤,并且官网上的文档也应该算是最权威的,不过ZooKeeper在这方面的文档不怎么多,但作为入门了解,还是非常有用的。 下面将从基本用法,Watchert的用法,异步调用以及ACL四个方面对ZooKeeper客户端编程作简要介绍。 当完成这四个方面的理解以后,就可以使用ZK完成一些更加高级的任务,如分布式锁、Master选举、一致性服务保障、配置管理等。官方文档对此也有简要介绍, 参考:http://zookeeper.apache.org/doc/r3.4.3/recipes.html 基本数据结构 class Stat {

[转载]深入理解iostat

半城伤御伤魂 提交于 2020-03-20 07:26:10
深入理解iostat 前言 iostat算是比较重要的查看块设备运行状态的工具,相信大多数使用Linux的同学都用过这个工具,或者听说过这个工具。但是对于这个工具,引起的误解也是最多的,大多数人对这个工具处于朦朦胧胧的状态。现在我们由浅到深地介绍这个工具,它输出的含义什么,介绍它的能力边界,介绍关于这个工具的常见误解。 基本用法和输出的基本含义 iostat的用法比较简单,一般来说用法如下: iostat -mtx 2 含义是说,每2秒钟采集一组数据: -m Display statistics in megabytes per second. -t Print the time for each report displayed. The timestamp format may depend on the value of the S_TIME_FORMAT environment variable (see below). -x Display extended statistics. 输出的结果如下所示: 注意,上图是在对sdc这块单盘(RAID卡上的单盘)做4KB的随机写入测试: fio --name=randwrite --rw=randwrite --bs=4k --size=20G --runtime=1200 --ioengine=libaio --iodepth

20160406javaweb 之JDBC简单案例

爷,独闯天下 提交于 2020-03-19 04:17:59
前几天写的user注册登录注销案例 ,没有用到数据库,现在做出改动,使用数据库存储信息: 一、首先我们需要建立一个数据库: 如下图: 创建数据库的代码如下: -- 导出 database02 的数据库结构 CREATE DATABASE IF NOT EXISTS `database02` /*!40100 DEFAULT CHARACTER SET utf8 */; USE `database02`; -- 导出 表 database02.users 结构 CREATE TABLE IF NOT EXISTS `users` ( `id` int(10) NOT NULL AUTO_INCREMENT, `username` varchar(20) NOT NULL, `password` varchar(50) NOT NULL, `nickname` varchar(40) NOT NULL, `email` varchar(50) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 二、创建包和类 1.创建一个接口 package com.dzq.dao; import com.dzq.domian.User; public interface UserDao { /** *

python内置模块[sys,os,os.path,stat]

不羁岁月 提交于 2020-03-18 14:52:06
内置模块是python自带功能,在使用内置模块时,需要遵循 先导入 在 使用 一、sys 对象 描述 sys.argv 命令行参数获取,返回类型为列表,第一个元素为程序的本身的路径 sys.path 返回模块的搜索路径列表,第一个元素为当前程序所在目录;初始化时使用PYTHONPATH环境变量的值 sys.modules.keys() 返回所有已经导入的模块列表 sys.modules 返回所有已经导入的模块字典,key模块名,value是模块路径 sys.exc_info() 获取当前正在处理的异常类,exc_type,exc_value,exc_traceback当前处理的异常详细信息 sys.exc_clear() 用来清除当前线程所出现的当前的或最近的错误信息 sys.exec_prefix 返回python文件安装的位置 sys.exit(n) 退出程序,正常退出时exit(0) sys.hexversion 获取python解释程序的版本值,16进制格式如:0x020103F0 sys.version 获取python解释程序的版本信息 sys.displayhook(value) 如果value非空,这个函数会把他输出到sys.stdout(详细使用参考文档) sys.excepthook 异常回溯相关 sys.stdin 标准输入 sys.stdin.read()