左值、左值引用、右值、右值引用 1、左值和右值的概念 左值是可以放在赋值号左边可以被赋值的值;左值必须要在内存中有实体; 右值当在赋值号右边取出值赋给其他变量的值;右值可以在内存也可以在CPU寄存器。 一个对象被用作右值时,使用的是它的内容(值),被当作左值时,使用的是它的地址。2、引用 引用是C++语法做的优化,引用的本质还是靠指针来实现的。引用相当于变量的别名。 引用可以改变指针的指向,还可以改变指针所指向的值。 引用的基...
进程的基本属性:进程ID、父进程ID、进程组ID、会话和控制终端 摘要:本文主要介绍进程的基本属性,基本属性包括:进程ID、父进程ID、进程组ID、会话和控制终端.进程基本属性1.进程ID(PID)函数定义:#include <sys/types.h>#include <unistd.h>pid_t getpid(void);函数说明:每个进程都有一个非负整型表示的唯一进程ID(PI...
Linux查看系统block size大小的方法 1.tune2fs命令查看block size大小:[root@localhost tmp]# tune2fs -l /dev/sda1|grep "Block size"Block size: 1024/dev/sda1 为/boot 分区的挂载点;2.stat命令查看block size大小:[root@localhost tmp]# stat ...
[android]system.img文件的打包和解包 1:system.img的两种格式system2_0.img: Linux rev 1.0 ext4 filesystem data, UUID=57f8f4bc-abf4-655f-bf67-946fc0f9f25b (extents) (large files)system1_0.img: Android sparse image, version: 1.0, Total of 39...
android adb 文章 https://blog.csdn.net/u010223349/article/details/41120255 Android ADB实现解析https://blog.csdn.net/u010223349/article/details/43227807 adb命令执行过程解析 https://blog.csdn.net/q1183345443/article/...
USB通信协议深入理解 https://blog.csdn.net/g200407331/article/details/51682597/0. 基本概念 一个【传输】(控制、批量、中断、等时):由多个【事务】组成; 一个【事务】(IN、OUT、SETUP):由一多个【Packet】组成。 USB数据在【主机软件】与【USB设备特定的端点】间被传输。【主机软件】与【US...
std::bind 详解及参数解析 // Bind_std_function.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>#include <functional>#include <random>#include <memory>//学习bind的用法void f(int n1, int n...
kernel ramdump分析--如何启动crash 一.怎么抓取kernel ramdump1.手机准备到代码的根目录 执行python vendor/xiaomi/securebootsigner/Qualcomm/tools/debugpolicy.py然后会自动重启第二步重启之后 需要有rootadb rootadb shell "echo 1 > /sys/module/msm_poweroff/paramete...
高通平台Linux kernel死机解题心得-trace32的使用 1、前言1.1 目的能够结合知识背景,借助相关调试工具,使用一般分析手段分析、定位解决项目过程中遇到的死机类系统稳定性问题,提升工作效率持续积累,拓宽知识深度和广度1.2 死机?指系统发生致命性异常导致主动或者被动进入系统完全不可用的状态,导致系统死机的问题原因有很多,排除硬件问题,还有这些大模块:Android、Linux kenrel、modem、TZ 等等,各个子系统都有可能导致系...
hexdump命令使用 hexdump命令是Linux下的打印16进制的利器,它可以按我们指定的格式输出16进制,特别有用,配合eeprom来用简直是绝配。今天我们来介绍一个hexdump命令的使用: 首先我们准备一个测试用的文件test,十六进制如下: [plain] view plaincopy00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F ...
killProcessGroup 在阅读本篇之前,你首先需要大概清楚一点,无论是系统杀(android机型上长按home键中清除),或者是他杀(第三方管理软件,如360,腾讯等)。其实现方法,基本都是借助ActivityManagerService的removeLruProcessLocked,改变主要也是在这里一、 先看代码有啥不同5.0以下我们先来看看Android4.4的源码,ActivityManagerService(源...
fasync fasync和kill_fasync是内核信号机制在驱动中的一个应用,低层原理是信号收发。让一个驱动一个进程绑定。由于驱动并不知道应用程序的ID,或者说应用程序的ID也并不是固定的。因此为了每次都正确的发送给一个固定应用及进程。则要对信号进行特殊应用。因为信号必须要知道进程ID才能正确的收发。LINUX系统对于每个应用进程号都是随机的每次开机或启动。这样就必须让一个特定驱动代码与特定进程通过每个变...
linux之configfs简介和编程入门 一、什么是configfs是一种基于ram的文件系统二、configfs有什么用处在用户空间配置内核对象三、configfs VS ioctlconfigfs可直接察看,通过用户态目录文件访问接口,适用于内核对象有众多复杂的配置。四、configs VS sysfsconfigfs可以在用户态创建和删除内核对象。五、什么时候用configfs当内核需要很多参数需要配置时;当需要动态创建内核对象并且...
Linux电源管理-wakeup count 前言在wakeup events framework小节中提到,wakeup events framwork可以解决system suspend和wakeup events之间的同步问题。而整篇下来没有看到是如何解决同步问题的。所有本小节继续分析wakeup events framework中的重要知识点-wakeup count。"wakeup count"是不是很熟悉? 是的
Linux电源管理_Wakeup events framework--(二) 1. 前言 本文继续“Linux电源管理(6)_Generic PM之Suspend功能”中有关suspend同步以及PM wakeup的话题。这个话题,是近几年Linux kernel最具争议的话题之一,在国外Linux开发论坛,经常可以看到围绕该话题的辩论。辩论的时间跨度和空间跨度可以持续很长,且无法达成一致。wakeup events framework是这个话题的一个临时性的解决
Linux电源管理-wakeup events framework 前言通常新机制/事物的出现往往是解决某些问题的,同样wakeup events framework机制也不例外。先带大家了解下wakeup events framework出现的背景,然后在了解其内部的实现机制。Linux系统中的电源管理一般是冷睡眠,而Android系统却将linux系统中的睡眠作为通常待机使用,显然Linux中的电源管理不符合Android系统。Android说既然不符
Android debuggerd 源码分析 debuggerd 简介Android系统自带一个实用的程序异常退出的诊断daemon debuggerd。此进程可以侦测到程序崩溃,并将崩溃时的进程状态信息输出到文件和串口中,以供开发人员分析调试使用。Debuggerd的数据被保存在/data/tombstone/目录下,共可保存10个文件,当超过10个时,会覆盖重写最早生产的文件。串口中,则直接用DEBUG的tag,输出logcat信息。 L...