- 博客(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
原创 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
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人