
技巧
_暮落_
noobcoder
展开
-
vs2019 支持c++20编译
c++20抢先在vs上流畅体验原创 2020-10-12 18:33:51 · 6206 阅读 · 0 评论 -
每日一c htonl
#include "../apue.h"int main(){ int fid; fid = open("file", O_RDWR);//打开这个文件 ftruncate(fid, 1024);//截断这个文 close(fid);}#include "../apue.h"int main(){ int fid; int i; fid = open("原创 2013-06-04 10:50:27 · 1049 阅读 · 0 评论 -
每日一c pthread_once
#include "../apue.h"#define MEMORY_SIZE 50//设置一个缓冲区大小事50btypthread_once_t once_thread = PTHREAD_ONCE_INIT;//pthread_once(&once_thread, create_memory);//在多个线程调用,只被一个线程执行,在只开辟一次空间cha原创 2013-06-05 00:12:30 · 1218 阅读 · 0 评论 -
每日一C-- 信号量结构体 利用信号实现进程间通信 初始化调用杀死
The sigaction structure is defined as something like: struct sigaction { void (*sa_handler)(int); void (*sa_sigaction)(int, siginfo_t *, void *);原创 2013-06-05 01:18:15 · 1269 阅读 · 0 评论 -
利用信号量共享内存
进程间通信--信号量+共享内存 2010-09-29 14:47:27分类: LINUX信号量是一个计数器,常用于处理进程和线程的同步问题,特别是对临界资源访问的同步。获取一次信号量的操作就是对信号量减一,而释放一次信号量的操作就是对信号量加一。Linux内核为每个信号集提供了一个semid_ds数据结构.该结构定义如下(linux/sem.h):转载 2013-06-05 14:33:19 · 992 阅读 · 1 评论 -
每日一C stat
ExampleThe following program calls stat() and displays selected fields in the returned stat structure.#include #include #include #include #include intmain(int argc, char *argv[]){ stru原创 2013-06-06 12:17:01 · 1024 阅读 · 0 评论 -
谷歌的三篇论文
Google的三大核心技术MapReduce、GFS和BigTable的论文MapReduce: http://blog.youkuaiyun.com/active1001/archive/2007/07/02/1675920.aspxGFS: http://blog.youkuaiyun.com/xuleicsu/archive/2005/11/10/526386.aspxBigTale: http原创 2013-06-06 17:58:03 · 1344 阅读 · 0 评论 -
个人觉得 evernote比较好
最容易影响笔记效率的10个错误: 1. 无目的储存(要储存对自己有用的内容,而不是好内容,在剪贴前,应该预先确认笔记会关联到未来的什么行动上,一切以目的性为第一。) 2. 过度分散(所有相关的记录统一在同一则记事中) -仿造结构化的知识百科(wikipedia)把evernote变成百科资料库,利用“记事链接”功能。 -合并多则记事 -中枢管理笔记(类原创 2013-07-03 15:40:16 · 964 阅读 · 0 评论 -
康奈尔大学做笔记方式
5R笔记法,又叫做康乃笔记法,是用产生这种笔记法的大学校名命名的。这一方法几乎适用于一切讲授或阅读课,特别是对于听课笔记,5R笔记法应是最佳首选。这种方法是记与学,思考与运用相结合的有效方法。具体包括以下几个步骤:1.记录(Record)。在听讲或阅读过程中,在主栏(将笔记本的一页分为左大右小两部分,左侧为主栏,右侧为副栏)内尽量多记有意义的论据、概念等讲课内容。2.简化(Redu转载 2013-07-28 14:51:30 · 1343 阅读 · 0 评论 -
nginx中的进程模型
1、高性能服务器对一个高性能服务器来说,处理速度快和资源占用小是典型特性,尤其是当服务器遇到C10K问题的时候(网络服务器在处理数以万计的客户端连接时,往往出现效率低下甚至完全瘫痪,这被称为C10K问题)。要做到处理速度足够快,其并发模型的设计相当关键,而要做到资源尤其是内存资源的占用少,就要依赖于其资源分配和资源管理的方案设计。服务器的并发模型设计是网络编程中很关键的一个部分,服转载 2014-08-19 13:44:22 · 1088 阅读 · 0 评论 -
shttpd string 操作重写
/* * Copyright (c) 2004-2005 Sergey Lyubka * All rights reserved * * "THE BEER-WARE LICENSE" (Revision 42): * Sergey Lyubka wrote this file. As long as you retain this notice you * can do what原创 2014-12-08 17:09:13 · 848 阅读 · 0 评论 -
shttpd 日志
#include "defs.h"/** Log function*/void_shttpd_elog(int flags, struct conn *c, const char *fmt, ...){ char date[64], buf[URI_PATH_MAX]; int len; FILE *fp = c == NULL原创 2014-12-11 10:13:43 · 1087 阅读 · 0 评论 -
ioctl
一行最多能写多少根据内核中写的函数定义来决定的.为什么下面的实现文件打印出的结果是20?NAME ioctl - control deviceSYNOPSIS #include int ioctl(int d, int request, ...);DESCRIPTION The ioctl() function原创 2013-06-03 23:31:10 · 975 阅读 · 0 评论 -
每天一练-fopen
#include #include /*fopen函数 */int main(int argc, char **argv){ FILE *pfile = NULL;//初始化文件指针 if(argc != 2)//如果不是两个参数 { printf("%s \n", argv[0]);//显示错误 return -1; } pfile = fopen(argv[1]原创 2013-06-03 21:33:47 · 854 阅读 · 0 评论 -
每日一练习-getline
#include /*while(!feof(pf)) ret = getline(&pbuf, &len, pf); */int main(){ FILE *pf;//定义一个文件指针 不要忘记 ‘*’ char *pbuf=NULL;//定义一个字符串 int len=0;//定义一个长度 int i=0;//定义一个 int ret;//一个整型的返回值 p原创 2013-06-03 21:49:04 · 817 阅读 · 0 评论 -
程序对战分配
原创 2013-05-18 03:42:16 · 819 阅读 · 0 评论 -
通讯协议的开发
1.通信协议的概念及其要素在OSI开放互联参考模型中,对等实体之间数据单元在发送方逐层封装,在接收方的逐层解析。发送方N层实体从N+1层实体得到的数据包称为服务数据单元(Service Data Unit,SDU)。N层实体只将其视为需要本实体提供服务的数据,将服务数据单元进行封装,使其成为一个对方能够理解的数据单元(Protocol Data Unit,PDU),封装过程实际上是为SDU增加原创 2013-05-10 12:58:20 · 4598 阅读 · 0 评论 -
VIM 文件浏览插件 — NERDTree
现代视窗编辑器一般都有列出文档功能,毕竟在文档和编辑器之间来回的切换会浪费很多的时间,VIM本身没有提供列出文档的功能,好在VIM拥有众多的插件支持,NERDTree便是一款在文件系统导航的插件,该插件可从VIM或github nerdtree获取。下载完成之后,解压文件会有如下目录和文件。其中最主要的是plugin文件夹下的NERD_tree.原创 2013-05-24 02:45:35 · 1043 阅读 · 0 评论 -
时间片轮询
#include "stdio.h"#include "stdlib.h"#include "string.h"typedef struct node{ char name[10]; /*进程标识符*/ int prio; /*进程优先数*/ int round; /*进程时间轮转时间片*/ int cputime; /*进程占用CPU时间*/ int转载 2013-05-12 03:12:39 · 1044 阅读 · 0 评论 -
pthread_cond_wait()
/************pthread_cond_wait()的使用方法**********/ pthread_mutex_lock(&qlock); pthread_cond_wait(&qready, &qlock); pthread_mutex_unlock(&qlock);/********************************原创 2013-05-30 10:38:31 · 717 阅读 · 0 评论 -
每日一C------广播
#include "apue.h"int main(){ int sockfd; struct sockaddr_in addr,con_addr; int con_len = sizeof(struct sockaddr_in); struct ip_mreq mcast; int ret; char buf[100]; sockfd = socket(AF_INET,S原创 2013-06-08 23:47:46 · 1152 阅读 · 0 评论 -
详解大端模式和小端模式
目录(?)[+]一、大端模式和小端模式的起源 关于大端小端名词的由来,有一个有趣的故事,来自于Jonathan Swift的《格利佛游记》:Lilliput和Blefuscu这两个强国在过去的36个月中一直在苦战。战争的原因:大家都知道,吃鸡蛋的时候,原始的方法是打破鸡蛋较大的一端,可以那时的皇帝的祖父由于小时侯吃鸡蛋,按这种方法把手指弄破了,因此他的转载 2013-05-31 17:05:35 · 809 阅读 · 0 评论 -
setscokopt
GETSOCKOPT(2) Linux Programmer's Manual GETSOCKOPT(2)NAME getsockopt, setsockopt - get and原创 2013-06-02 13:12:23 · 914 阅读 · 0 评论 -
父子进程数据共享问题
1、fork[cpp] view plaincopy#include #include pid_t fork (void ); 正确返回:父进程中返回子进程的进程号;子进程中返回0错误返回:-1; 子进程是父进程的一个拷贝。子进程从父进程那得到了数据段和堆栈段,但不是与父进程共享而是单独分配内原创 2013-06-03 12:39:59 · 4220 阅读 · 0 评论 -
memset的几种用法
1。void *memset(void *s,int c,size_t n)总的作用:将已开辟内存空间 s 的首 n 个字节的值设为值 c。2。例子#includevoid main(){char *s="Golden Global View";clrscr();memset(s,'G',6);printf("%s",s);getchar();return原创 2013-06-03 22:12:06 · 1285 阅读 · 0 评论 -
每日一c--文件重定向-pdup = dup2(pf_1, pf_2);/
#include "../apue.h"// > 重定向int main(int argc, char **argv){ int pf_1, pf_2, pdup;//以整形来定义文件指针 int pf;//文件指针 char buf[20];//字符数组 int n;//整形变量 if(argc != 3)//参数若果不是三个 { printf("%s \n", ar原创 2013-06-03 22:59:21 · 2797 阅读 · 0 评论 -
消息队列
对消息队列的操作无非有下面三种类型:1、 打开或创建消息队列消息队列的内核持续性要求每个消息队列都在系统范围内对应唯一的键值,所以,要获得一个消息队列的描述字,只需提供该消息队列的键值即可;注:消息队列描述字是由在系统范围内唯一的键值生成的,而键值可以看作对应系统内的一条路经。2、 读写操作消息读写操作非常简单,对开发人员来说,每个消息都类似如下的数据结构:转载 2013-05-17 10:30:24 · 768 阅读 · 0 评论