读书笔记
文章平均质量分 63
Jasonfang0118
这个作者很懒,什么都没留下…
展开
-
AUP----mkstemp和tmpfile
Linux下创建一个临时文件有两种方式:mkstemp和tmpfile,两者区别在于:tmpfile这个函数创建文件后会自动删除文件,而mkstemp创建的文件要调用unlink来删除,tmpfie返回的是一个文件指针,而mkstemp的返值则是一个FD,需要注意mkstemp函数只有一个参数,这个参数是个以“XXXXXX”结尾的非空字符串。mkstemp函数会用随机产生的字符串替换“XXXXXX原创 2012-06-04 17:27:37 · 745 阅读 · 0 评论 -
NAT穿越原理——STUN
STUN是RFC3489规定的一种NAT穿透方式,它采用辅助的方法探测NAT的IP和端口。毫无疑问的,它对穿越早期的NAT起了巨大的作用,并且还将继续在ANT穿透中占有一席之地。 STUN的探测过程需要有一个公网IP的STUN server,在NAT后面的UAC必须和此server配合,互相之间发送若干个UDP数据包。UDP包中包含有UAC需要了解的信息,比如NAT外网 IP,PORT等等。UAC转载 2014-05-07 17:23:26 · 7125 阅读 · 0 评论 -
tcpdump 使用详解
TCPdump抓包命令 tcpdump是一个用于截取网络分组,并输出分组内容的工具。tcpdump凭借强大的功能和灵活的截取策略,使其成为类UNIX系统下用于网络分析和问题排查的首选工具。tcpdump提供了源代码,公开了接口,因此具备很强的可扩展性,对于网络维护和入侵者都是非常有用的工具。tcpdump存在于基本的Linux系统中,由于它需要将网络界面设置为混杂模式,普通用户不能正常原创 2014-06-10 10:01:20 · 894 阅读 · 0 评论 -
Ubuntu 14.04 安装TFTP server
其实发行版本无关,只1. sudo apt-get install tftpd tftp openbsd-inetd2. sudo vi /etc/inetd.conf#:BOOT: TFTP service is provided primarily for booting. Most sites# run this only on machines转载 2014-08-17 14:16:31 · 16547 阅读 · 0 评论 -
base64编解码方法
base64编码: int base64_encrypt(unsigned char *buf, const unsigned char*text, int size) { static char *base64_encoding = “ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789原创 2015-09-12 22:04:23 · 857 阅读 · 0 评论 -
不要放弃你的梦想
周末的时候我正准备和几个朋友打游戏,热身的过程中同一个不是很熟的队员发生了一次有趣的谈话。“你是做什么的?”他问我。“哦,我给自己干,我有一个软件公司”,我回答。“真的吗!真令人羡慕!我在XXX公司工作,但我一直有个愿望去做动画设计,做独立职业人。这是我的梦想。可我现在陷入了这个错误的行业中了。”“你还活着,不是吗?”我尽量小声的对他说。他继续说:“你不知道,我已经想这一天等了10转载 2012-07-11 08:31:33 · 1075 阅读 · 0 评论 -
Letter to a Young Developer
I’ve been getting some emails from young developers wanting to “level up” as programmers. I’m definitely not the first to write about this topic, so I’m not sure how much I have to add. Still, for w转载 2011-09-16 08:27:51 · 295 阅读 · 0 评论 -
Writing Remote Procedural Calls (RPCs) in C
Getting to Know RPCsPerhaps you are bored of writing programs that run on only one computer at a time—how limiting! If so, you'll be glad to hear that there's a tool designed to get your programs on转载 2011-09-03 17:49:35 · 468 阅读 · 0 评论 -
Writing the RPC Server using XDR
Create "llist_svc_proc.c" to hold the server code. I #included llist.h, copied over the prototypes, and implemented the server as follows: int result;/* print out a list, returning the numbe转载 2011-09-03 17:51:32 · 309 阅读 · 0 评论 -
专业理解-20160922
大学学的专业,到现在才有点深刻的理解,大四那会的选修课,现在看来基本都成为研究生阶段的课题和方向,本科学习阶段也就是为这些来做准备的吧,工作了这么几年,一直觉得工作方向特别重要,阴差阳错的选择了嵌入式通信行业,作了软件研发,也就是所谓的程序员,刚开始干的特有劲,后面接着是各种挑战,工作能力不足及工作能力与事情本身的不匹配,有时候事情太简单、单一觉得没劲,因为这会离职或者有些迷茫,现在想来是职业规划不原创 2016-09-23 00:06:33 · 348 阅读 · 0 评论 -
Linux system program-目录操作
#include char *getcwd(char *buf, size_t size);//获得当前进程运行所在目录,该目录是相对系统根目录的。linux C函数库:get_current_dir_name();实现:get_current_dir_name(){ char *env = getenv("PWD"); if(env原创 2013-05-20 11:50:55 · 661 阅读 · 0 评论 -
Linux system program-时间
获取时间和日期#include time_t time(time_t *t);int gettimeofday(struct timeval*tv, struct timezone *tz);struct timeval{int tv_sec;int tv_usec;};struct timezone{int tz_minutes原创 2013-05-20 11:53:35 · 504 阅读 · 0 评论 -
Linux system program-网络
地址:#include struct sockaddr{unsigned short sa_family;char sa_data[MAXSOCKADDRDATA];};一、基本套接字操作#include int socket(int domain, int type, int protocol);AF_UNIX PF_UNIX原创 2013-05-20 11:52:05 · 571 阅读 · 0 评论 -
AUP学习笔记--基本的I/O系统调用
最近在读高级unix编程一书,没事就写写总结吧,把一些重点内容记录下来,以后要复习或者找资料的话还可以省点时间,闲话不多说,unix下系统编程我想跟Linux下的应该没什么区别,一般说来我会直接在linux下进行实验,说到这里,前些天把自己的本整成了双系统,分了六十G给fedora16,使用GNOME3感觉很清爽,界面也很炫,一些工作上用到的toolchain也配置好了,还以为有多么复杂,没想到只原创 2012-05-22 21:58:36 · 718 阅读 · 0 评论 -
Core Python上的第一个程序
Core Python上的第一个程序,书上的排版尤其是针对代码这块最令我不爽,看来看去,这个缩进很明显的错误~还是要自己改改,调调才可,尽信书不如无书,也好~!#!/usr/bin/env python#'makeTextFile.py -- create text file'import osls= os.linesep#get filenamewhile True:原创 2012-07-04 16:00:32 · 844 阅读 · 0 评论 -
观后感--《冠军》
因为端午节的原因,同学都回家了,我家隔得比较远,所以没回,这两天也没什么事就开始在风行上搜索电影来看,以打发时间,实际上平时也没太多心思去看电影,这样的话正好可以在这样的时候安静的享受下,搜寻了半天最终还是选择看车太贤主演的《冠军》,网上评论说有点像以前的《奔腾年代》,看完后也许有两分相似吧,不过更加的感人。 《冠军》中,车太贤饰演是一个怀有梦想的骑手李承浩,因为一次交通意外而失去自原创 2012-06-23 23:45:10 · 3806 阅读 · 2 评论 -
[Expect C Programming]-1-微妙的bug
如下段代码:int array[] = {1,2,3,4,5,6,7};#define TOTAL_ELEMENTS (sizeof(array) / sizeof(array[0]))int main(){ int d = -1, x; /* ... */ if (d <= TOTAL_ELEMENTS - 2) { x = arr原创 2012-06-26 11:23:07 · 466 阅读 · 0 评论 -
全双工管道
管道创建:int pipe(int fd[]);fd[0]/fd[1]分别对应:读、写全双工管道,顾名思义就是数据通讯是双向的,即fd[0]/fd[1]都可用来读或者写摘录一个小例子(来自Unix Neworking Programming Volume 2 Interprocess communications)稍改动过:#include #include #in原创 2012-06-27 17:13:27 · 3048 阅读 · 2 评论 -
Posix 消息队列的创建问题
如下代码:#include #include #include #include #include #include #include #include #define MQ_DATA_FILE "/tmp/tmp_mq_ipc_file"int main(int argc, char **argv){ mqd_t mq_list; struct mq_原创 2012-07-18 15:05:01 · 987 阅读 · 0 评论 -
FIFO之小记
把AUP上的FIFO小节又重温了一下,有几个问题需要注意:1. open fifo时的顺序问题(只有当该FIFO为已写打开后,才可读)2. open fifo时的EEXIST错误码处理(如果FIFO不存在我们才创建,否则直接打开用即可)3.从FIFO中读数据的连续性(系统调用的原因(缓冲区))写了个测试小程序:#include #include #include #inc原创 2012-07-18 10:54:16 · 441 阅读 · 0 评论 -
Waking up early, 10 tips that work
In this blog post I am going to cover a topic that I have been occupied with for several weeks now: Becoming an early riser.Getting up early can be a great way to help you establish a daily routine转载 2012-08-31 14:50:47 · 721 阅读 · 0 评论 -
Career Advice--学习速度变慢?
学习速度变慢?你或许应该跳槽了跳槽的时机把握,是你的职业生涯能否不断提升的关键 通常情况下,碰到以下情况,你就应该考虑跳槽了:薪水不公;受到压制,不受重视;不认同公司的基本战略或经营方式,而且无力改变;与主管或同事关系不好;无法融入公司文化。这些情况都不难发现,而且一旦出现,足以成为跳槽的充分理由。 但是,当你在现在的岗位上的学习速度放缓,开始进入平台期转载 2012-09-25 14:47:43 · 646 阅读 · 0 评论 -
Linux下的stdout,stdin,stderr
stdout, stdin, stderr的中文名字分别是标准输出,标准输入和标准错误。在Linux下,当一个用户进程被创建的时候,系统会自动为该进程创建三个数据流,也就是题目中所提到的这三个。那么什么是数据流呢(stream)?我们知道,一个程序要运行,需要有输入、输出,如果出错,还要能表现出自身的错误。这是就要从某个地方读入数据、将数据输出到某个地方,这就够成了数据流。因此,一原创 2012-10-19 17:01:24 · 685 阅读 · 0 评论 -
谈坚持和总结-20160912
20160912想过要将自己这几个的工作及学习知识好好总结一下,觉得很有必要,这两年是工作历程中的最重要的几年,周末一直会是懒散的状态,学习效率比较低下,XMIND知道很久,却没怎么用,内核方面一直在看,却没有系统性的深入学习,总是看了又看的重复,书到用时方恨少,真理啊!之前想用微博,但发现推送的垃圾信息太多,头脑风暴,时间都花在筛选上了,我需要专注,工作中学习,学习中提高,积累中总结,做个行动派!原创 2016-09-12 09:15:20 · 390 阅读 · 0 评论