调用accep()后,用read读取connection(有10个字节)上的数据,但只读取了5字节,再次调用select()后,依然会触发这个connection上的read事件,直到connection上的数据被全部读取。

libevent有下面一些特点和优势:

  • 事件驱动,高性能;
  • 轻量级,专注于网络;
  • 跨平台,支持 Windows、Linux、Mac Os等;
  • 支持多种 I/O多路复用技术, epoll、poll、dev/poll、select 和kqueue 等;
  • 支持 I/O,定时器和信号等事件;

libevent有下面几大部分组成:

  • 事件管理包括各种IO(socket)、定时器、信号等事件,也是libevent应用最广的模块;
  • 缓存管理是指evbuffer功能;
  • DNS是libevent提供的一个异步DNS查询功能;
  • HTTP是libevent的一个轻量级http实现,包括服务器和客户端
Read more »

listen设置
listen(int socket, int backlog);

backlog为pending的connection的长度,个人猜测这个长度是否是指定已经成功创建链接的栈的长度

什么是同步IO、异步IO:

Stevens给出的定义(其实是POSIX的定义)是这样子的:

A synchronous I/O operation causes the requesting process to be blocked until that I/O operation completes;

An asynchronous I/O operation does not cause the requesting process to be blocked;

Key skills to take from this photography tutorial

flare1

  • Spend time choosing the right location for your shoot
  • Build a rapport with your model – this can really help achieve the results you’re after
  • Select the correct lens for your camera (You might have seen my second hand lenses video already)
  • What apertures are best for portrait photography
  • When to and how to fill light into the shadows
  • Oh Yes! And always remove the lens cap before beginning – Very important :-0

如果“加密”复选框可用,则您可以将其选中以保护备份磁盘。

如果“加密”复选框呈灰色,则您的备份磁盘不支持加密。

仅 Time Capsule 以及与电脑直接连接并使用 GPT 分区方案进行分区的分区或磁盘可以加密。如果您的磁盘不可以加密,请将鼠标指针放在呈灰色显示的复选框上,稍后会出现一个说明。如果磁盘需要重新重新格式化或重新分区以支持加密,则 Time Machine 会提示您执行此类操作。

OS X Yosemite中,大部分程序的“最大化”按钮默认变为了全屏显示,而不是之前的最大化窗口。
这种设计有时候也不是很方便,若要使用最大化窗口,可用如下方法:

1、像Windows那样,双击程序标题栏
2、按住option键,再点最大化按钮+

Xcode 6 安装 command line tools

在shell执行xcode-select --install

文件会被安装在/Library/Developer/CommandLineTools路径下

URL Encoding

URLs can only be sent over the Internet using the ASCII character-set.

Since URLs often contain characters outside the ASCII set, the URL has to be converted into a valid ASCII format.

URL encoding replaces unsafe ASCII characters with a “%” followed by two hexadecimal digits.

URLs cannot contain spaces. URL encoding normally replaces a space with a plus (+) sign or with %20.

创建注册信号处理器

#include <signal.h>
int catch_signal(int sig, void (*handler) (int))
{
  struct sigaction action;
  action.sa_handler = handler;
  sigemptyset(&action.sa_mask);
  action.sa_flags = 0;
  return sigaction (sig, &action, NULL);
}

#include <stdio.h>

void redirect_file_to_strerr(void);

int main(int argc, char const *argv[])
{
  redirect_file_to_strerr();
  return 0;
}

void redirect_file_to_strerr(void)
{
  FILE *f;
  f = fopen("redirect_file_to_strerr.txt", "w");
  dup2(2, fileno(f));
  fprintf(f, "%s\n", "hello world");
}

假设 f的文件描述符为10;
dup2(2, fileno(f))将把流向f的数据重定向到strerr,所以写入f的内容不会被保存在文件中,而是显示在了屏幕上(sterr默认流向屏幕),redirect_out_to_file.txt文件内容为空。

1 => screen
2 => screen
10 => redirect_file_to_strerr.txt”
10 => 2

用管理链接两个程序,第一个程序只要有输出,就会把内容传递给第二个程序,程序2就会马上对程序1的输出进行处理,而不是等到程序1的输出全都完成后,才对其输出进行处理。即,程序2实时处理程序1的输出。

proc1 | proc2

动态库在不同平台的扩展名不同

  • windows: dll
  • linux: so
  • mac: dylib

外部驱动就是很好的例子,如显卡驱动(更新驱动),只要正确编译了驱动程序,显示器程序就能正确显示,不用再管显示器的程序了(厂商已经编译好了)。

linux 重定向 标准输出 标准输入到文件,测试程序用C语言,执行程序名为test_out

#include <stdio.h>
int main(int argc, char const *argv[])
{
  fprintf(stderr, "%s\n", "this is stderr");
  fprintf(stdout, "%s\n", "this is stdout");
  return 0;
}

测试1

$> test_out
=> stderr
=> stdout
Read more »

手动删除 Wordpress插件 WP Super Cache
To manually uninstall:

  1. Turn off caching on the plugin settings page and clear the cache.
  2. Deactivate the plugin on the plugins page.
  3. Remove the WP_CACHE define from wp-config.php. It looks like define( 'WP_CACHE', true );
  4. Remove the Super Cache mod_rewrite rules from your .htaccess file.
  5. Remove the files wp-content/advanced-cache.php and wp-content/wp-cache-config.php
  6. Remove the directory wp-content/cache/
  7. Remove the directory wp-super-cache from your plugins directory.
    Read more »

字幕文件可以自动发送到kindle设备啦,目前就是还不能自动下载,因为目标网站上的文件命名还不太有规则。

一个一个下载还比较好解决,批量下载还待解决。