自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(266)
  • 资源 (1)
  • 收藏
  • 关注

原创 ios开发之NSDate

@property (readonly) NSTimeInterval timeIntervalSinceReferenceDate;返回自2001年1月1日到现在经过的秒数。- (instancetype)init初始化,获取当前时间。- (instancetype)initWithTimeIntervalSinceReferenceDate:(NSTimeInterval)ti初始化,设置当前时

2017-05-04 18:54:48 238

原创 进程探寻之内存分布

UNIX系统中进程都会占用4G虚拟内存。4G虚拟内存又被分成不同的内存区域,用于完成不同的程序功能。本文将详细介绍进程中不同区域的功能,既内存分布情况。 用户空间与内核空间 4G虚拟内存可分为两大部分——用户空间与内核空间。用户空间占用3G内存空间,是0x00000000到0xbfffffff的内存区域。内核空间占用1G内存空间,是0xc0000000到0xffffffff的内存区域。内核空间保

2017-04-30 15:54:43 255

原创 ios开发之NSIndexSet

NSIndexSet是索引的集合。索引按照从大到小的顺序排列,且没有重复的索引。初始化- (instancetype)initWithIndex:(NSUInteger)value;根据索引初始化。- (instancetype)initWithIndexesInRange:(NSRange)range根据区间初始化。- (instancetype)initWithIndexSet:(NSIndex

2017-04-23 16:35:19 571

原创 ios开发之NSData

NSData用于保存字节数组。初始化- (instancetype)initWithBytesNoCopy:(void *)bytes length:(NSUInteger)length freeWhenDone:(BOOL)b;初始化对象。 不进行复制字节数组操作,直接设置字节指针为bytes,长度为length。- (instancetype)initWithBytesNoCopy:(void

2017-04-17 20:23:34 2251

原创 glibc源码分析之进程启动(start.S)

启动代码顾名思义,启动代码就是使进程启动的代码。它包含了进程运行的第一条指令。 每个程序都有一段启动代码。启动代码初始化进程环境,调用main函数,使程序正式开始运行。 glibc为我们提供了进程的启动代码,本文将详细讲解glibc提供的启动代码。(基于glibc2.7)启动代码的实现接下来,我们将详细讲解启动代码的实现。 让我们来看一下glibc源代码中启动代码的实现。 glibc的启动代

2017-04-16 18:49:39 1594

原创 unix系统之acct()

unix系统提供了进程记账功能,在进程结束时将进程相关信息写入文件。#include <unistd.h>int acct(const char * file, int mode);acct系统调用用于开启或者关闭进程记账功能。如果以一个存在的文件的文件名作为参数,进程记账功能将开启。在进程结束时将进程相关信息添加到文件中。如果以NULL作为参数,进程记账功能将被关闭。如果执行成功则返回0,如果失

2017-04-15 20:27:34 1004

原创 ios开发之NSDictionary

NSMutableDictionaryNSMutableDictionary用于可变长字典。初始化- (instancetype)initWithCapacity:(NSUInteger)numItems初始化字典,设置字典的初始容量。参数numItems为容量大小。- (instancetype)init初始化字典。相当于调用 [self initWithCapacity

2017-04-15 19:38:26 386

原创 unix系统之getpid()

unix系统中程序都是以进程的方式运行的。每个进程都有一个标识符用于标识进程。通过进程标识符,我们可以向进程发送信号。unix系统提供了2个系统调用用于获取进程的标识符和父进程的标识符。#include <sys/types.h>#include <unistd.h>pid_t getpid(void);pid_t getppid(void);getpid()返回调用进程的进程ID。它经常被用

2017-04-10 19:24:28 1020

原创 ios开发之NSNumber

初始化- (NSNumber *)initWithChar:(char)value;- (NSNumber *)initWithUnsignedChar:(unsigned char)value;- (NSNumber *)initWithShort:(short)value;- (NSNumber *)initWithUnsignedShort:(unsigned short)value;

2017-04-05 20:19:00 202

原创 ios开发之NSValue

一个NSValue对象是用来存储一个C或者Objective-C数据的简单容器。它可以保存任意类型的数据,比如int,float,char,当然也可以是指pointers, structures, and object ids。初始化- (instancetype)initWithBytes:(const void *)value objCType:(const char *)type 参数valu

2017-04-05 19:51:50 289

原创 ios开发之NSMutableArray

NSMutableArray用于可变数组操作。初始化- (instancetype)initWithCapacity:(NSUInteger)numItems初始化容量。参数numItems为容量大小。- (instancetype)init初始化。等于调用[self initWithCapacity: 0];- (instancetype)initWithObjects:(const Object

2017-04-01 18:38:55 676

原创 ios开发之NSArray

NSArray用于数组操作。初始化- (instancetype)initWithObjects:(const ObjectType _Nonnull [_Nullable])objects count:(NSUInteger)cnt根据对象序列初始化。参数objects为对象序列,参数cnt为对象序列个数。执行initWithObjects成功后,对象引用计数加一- (instancetype)i

2017-03-29 20:27:30 1180

原创 GNUStep中对象内存模型

对象内存模型事例@interface MyObject : NSObject{ NSInteger i; char *str;}对象内存模型

2017-03-28 18:50:50 241

转载 在ubuntu上安装 GNUstep 编译objective c

最近看了很多文章,互联网发达今天,想找一篇对的文章还真TM难, 再次BS一下,那些不知所云就转贴的竖子,本来以为很简单的 objective c 在 gcc上的编译问题,因为gcc很本就可以支持objective c 的,花了两天的时间搞定, 不得不再次感叹互联网的强大 gcc是可以,但是不用GNUstep 而写obj c 是没有什么意义,如果用GNUstep 那gcc老的方法就会有问题,最烦人的就

2017-03-25 20:26:25 592

原创 unix系统之库函数(二)

分类 开发者为我们提供了大量的库函数。这些库函数可以分成许多类型,方便使用。面向对象的加入

2017-03-24 20:28:06 328

原创 ios开发之字符串操作(四)

解析字符串解析为多种类型(数组,字典…)- (id)propertyList;解析为字典- (nullable NSDictionary *)propertyListFromStringsFileFormat;NSString *str=@"<dict><key>name</key><string>nm</string><key>age</key><string>12</string></dict>

2017-03-23 20:33:44 436

原创 ios开发之字符串转码(二)

iOS支持多种字符编码,可以将unicode字符转码为其他编码的字符。iOS支持的编码有:typedef NSUInteger NSStringEncoding;NS_ENUM(NSStringEncoding) { NSASCIIStringEncoding = 1, /* 0..127 only */ NSNEXTSTEPStringEncoding = 2,

2017-03-22 19:01:13 3027

原创 unix系统之进程初始化

main函数之前熟悉c语言的人都应该了解一条规则——程序从main函数开始执行。但main函数的指令真的是第一条执行的指令吗?其实不然。在main函数执行之前,程序执行了一段初始化代码。初始化代码初始化进程环境,然后调用main函数。到这里main函数才开始执行。初始化代码的第一条指令才是程序第一条执行的指令。那么初始化代码到底做了什么?本文将详细讨论此问题。进程环境要了解初始化代码做了什么,需要先

2017-03-18 17:43:09 499

原创 ios开发之字符串操作(三)

ios提供的字符串操作中有两个操作是最基本的。获取字符串长度@property (readonly) NSUInteger length;获取下标对应的字符- (unichar)characterAtIndex:(NSUInteger)index;NSString *str=@"你好,世界!";NSLog(@"length %lu",[str length]);unichar ch=[str cha

2017-03-15 19:37:39 519

原创 ios开发之字符串初始化(一)

ios提供了许多初始化函数。可以从字符数组初始化,从C语言字符串初始化,从文件初始化,从网络地址初始化……初始化操作主要功能是将不同编码的字符串转化为unicode编码的字符串。以下为最基本的4个初始化函数- (instancetype)initWithCharacters:(const unichar *)characters length:(NSUInteger)length;根据unicode

2017-03-14 20:33:02 1524

原创 unix系统之库函数

内核在执行每个程序时都会为其提供4G的内存空间(32位系统下)。4G内存空间中0-3G属于用户内存空间,3G以上属于内核内存空间。如图一。内核内存空间保存着内核的代码与数据。其中包括了系统调用对应的内核函数。这些函数使用户可以执行各种系统调用——内核内存空间为用户提供了系统调用。那么用户内存空间又为用户提供了什么呢? 用户内存空间为用户提供了各种不同的库函数。 0-3G的用户内存空间犹如一张白纸

2017-03-13 20:59:12 443

原创 unix系统之系统调用的封装

系统调用每个程序在运行时都可以调用一系列的特殊“函数”。这些特殊的“函数”能够完成各种不同的系统任务——获取当前时间,打开读写文件等。这些特殊的函数有一个特殊的名字——系统调用。调用系统调用系统调用不同于普通函数,调用过程十分特殊。(以下讨论基于linux系统)其调用过程是:一 设置系统调用号。每个系统调用都有一个独特的系统调用号。通过系统调用号可以在几百个系统调用中确定系统调用。设置系统调用号要

2017-03-13 20:20:56 424

原创 mysql 触发器

mysql提供了触发器功能。以下为触发器创建语句create trigger trigger_buy_credits after insert on buy for each row update user set credits=credits+100 where id = new.user_id触发器删除语句drop trigger_buy_credits

2017-03-13 18:37:58 166

原创 ajax发送请求

javascript可以发送网络请求,而ajax对其进行了封装。以下是ajax发送请求实例$("#"+form).ajaxSubmit({ url: path, type: 'POST', dataType: 'xml', success: function (xmlDoc) { var retCode = $(xmlDoc).fi

2017-03-13 18:34:13 261

转载 视频剪切---ffmpeg命令的使用

在处理视频文件时,我们可以使用ffmpeg命令。1.分离视频音频流ffmpeg -i input_file -vcodec copy -an output_file_video  //分离视频流ffmpeg -i input_file -acodec copy -vn output_file_audio  //分离音频流2.视频解复用ffmpeg –i test.mp4 –vcodec copy

2017-03-13 18:21:39 5477

原创 unix系统之系统调用

系统调用(system call)是操作系统提供给程序调用的接口,程序调用系统调用完成所需的系统任务。 系统调用类似于我们平常使用的工具包。当你需要钳子时,你就从工具包中拿出钳子使用。当你需要老虎钳时,你就从工具包中拿出老虎钳使用。当你需要螺丝刀,你就从工具包中拿出螺丝刀使用……系统调用也是同样的原理,当你需要获取当前时间时,你可以调用获取当前时间的系统调用。当你需要创建文件时,你可以调用创建文件

2017-03-05 19:01:54 1531

原创 ios开发之NSString

初始化字符串:- (instancetype)initWithCharactersNoCopy:(unichar *)characters length:(NSUInteger)length freeWhenDone:(BOOL)freeBuffer; /* "NoCopy" is a hint */- (instancetype)initWithCharacters:(const unichar

2017-03-05 17:50:11 473

原创 unix系统之与文件系统相关的系统调用

自unix诞生之初,文件系统便成为了unix系统的一部分。尽管那时的文件系统只能支持512K字节的磁盘且每个文件限定长度为64K字节。但是文件系统的基础结构已经基本确定。构建在文件系统之上的相关的系统调用也已基本成型。后来发展的与文件系统相关的系统调用也是在其基础之上不断完善而来的。unix中与文件系统相关的系统调用大约有50多条。按照它们功能的不同可以将它们分为三类:创建与删除,获取与修改以及其他

2017-02-20 17:49:51 874

原创 ios开发之文件路径操作

iOS提供了一些API用于操作文件路径。NSString (NSStringPathExtensions)- (NSString *)stringByAppendingPathComponent:(NSString *)str;向文件路径末尾添加文件NSString (NSStringPathExtensions)NSString *stringByDeletingLastPathCompone

2017-02-09 18:28:01 439

原创 ios开发之获取目录内容

目录的作用 目录与文件构成了文件系统的层次结构。目录使文件更易于存取,管理,使用户可以将不同种类,不同功能的文件分类存储。目录的内容 目录包含了一系列的文件名和指向文件属性的指针。

2017-02-08 12:37:48 682

原创 ios开发之获取修改文件属性

ios提供了一些API用于获取和修改文件属性。本文将详细讨论ios中如何获取与修改文件属性。每个文件都有其对应的属性。这些属性可能包含文件大小,文件修改日期,文件权限…我们可以获取这些属性,也可以修改其中的某些属性。文件的基本结构 获取文件属性NSFileManager- (nullable NSDictionary<NSFileAttributeKey, id> *)attributesOfI

2017-02-06 19:21:50 3162

原创 ios开发之文件系统操作

iOS的沙盒机制iOS不像Android,没有SD卡概念,不能直接访问图像、视频等内容。iOS应用产生的内容,如图像、文件、缓存内容等都必须存储在自己的沙盒内。默认情况下,每个沙盒含有3个目录:Documents, Library 和 tmp。Library包含Caches、Preferences目录。我们只能操作沙盒中的目录与文件。一系列APIiOS提供了一系列API来操作目录与文件。以下将对其介

2017-02-04 17:07:03 779

原创 操作系统项目(一)安装as86 ld86

as86 ld86 as86和ld86是linux下的16位汇编编译器,链接器。linux内核中有部分代码需要用到as86以及ld86。而ubuntu下默认并没有安装as86和ld86。需要自行安装。安装sudo apt-get install bin86

2016-04-14 11:03:04 3226

原创 系统命令与系统调用

什么是系统命令 系统命令是存在于文件系统上的一个可执行文件。使用系统命令可以完成特定的系统任务。如ls命令可以显示目录下的文件列表,free命令可以查看内存信息。函数的集合 一般系统命令都是使用c语言编写的。用c语言编写的程序的代码区可以看成一个函数的集合。系统命令通过执行一个个函数完成任务。 特殊的函数 程序执行之前其实已经拥有了一个函数列表,他们存在于内核,需要使用特殊的方式调用。这就是

2016-04-11 19:56:03 1691

转载 gcc -I -L -l区别

gcc -I -L -l区别我们用gcc编译程序时,可能会用到“-I”(大写i),“-L”(大写l),“-l”(小写l)等参数,下面做个记录:例:gcc -o hello hello.c -I /home/hello/include -L /home/hello/lib -lworld上面这句表示在编译hello.c时

2016-04-10 13:34:15 240

原创 linux命令(二) blockdev命令

blockdev命令 blockdev命令可以获取linux下块设备的属性值,以及设置一些块设备的属性值。命令参数block -V 输出程序的版本号blockdev --report [devices] 列举出devices设备信息。如果没有devices,则输出所有操作系统发现的块设备。blockdev [-v|-q] commands devices-v 命令设置后,后面的命令行参数执

2016-04-09 10:59:09 7529

原创 ubuntu操作系统(二)ssh

(本操作系统为ubuntu kylin 14.01 32位操作系统。以下使用ubuntu代替ubuntu kylin 14.01 32位操作系统。)ubuntu安装完成后,第一次运行需要安装一些软件。ssh ssh是linux下的远程登录工具。安装sudo apt-get install openssh-server

2016-04-08 18:55:52 290

原创 linux命令(二)arch命令

arch命令 arch命令是linux的命令,输出机器的体系结构。 arch输出与uname -m输出是一致的。命令参数 --help 显示此帮助信息并退出 --version 显示版本信息并退出命令实现arch的输出是通过uname系统调用获取的。是utsname结构中的machine的值。struct utsname { char sysn

2016-04-03 19:01:09 2973 1

原创 linux命令(二)cpu信息

cpu信息 硬件的cpu信息可以通过读取/proc/cpuinfo文件获取。文件部分内容processor 逻辑处理器的idphysical id 物理封装的处理器的idcore id 每个核心的idcpu cores 位于相同物理封装的处理器中的内核数量siblings 位于相同物理封装的处理器中的逻辑处理器的数量...

2016-04-03 18:19:10 305

原创 linux命令(二)free命令

free命令 free命令可以显示Linux系统中空闲的、已用的物理内存及swap内存及被内核使用的buffer。命令参数 -b, --bytes 显示字节数 -k, --kilo 显示千字节数 -m, --mega 显示兆字节数 -g, --giga 显示千兆字节数 --tera 显示百万兆字

2016-04-02 19:05:22 314

linux系统调用

介绍linux系统调用,主要是0.01内核的代码

2015-10-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除