Skip to content

Instantly share code, notes, and snippets.

View keybase.md

Keybase proof

I hereby claim:

  • I am sunny1304 on github.
  • I am sunny1304 (https://keybase.io/sunny1304) on keybase.
  • I have a public key ASCH7fSzZ6ZVa4AsvhI8-aalUTBvlf1Q2godjAIrL8_pSwo

To claim this, I am signing this object:

@sunny1304
sunny1304 / typecheck_macro.c
Last active Aug 29, 2015
Typecheck macro in C (from Linux Source)
View typecheck_macro.c
//Use -Werror in GCC to get error, otherwise it will be a warning
/*
Constraints
One of the following shall hold:
both operands have arithmetic type;
both operands are pointers to qualified or unqualified versions of compatible types;
one operand is a pointer to an object or incomplete type and the other is a pointer to a qualified or unqualified version of void; or
@sunny1304
sunny1304 / word_count.c
Created Oct 25, 2014
Word count [seperator: ' ', '\t', '\n', '\r']
View word_count.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int word_count(const char* str)
{
size_t word_count = 0;
size_t char_counter = 0;
size_t str_length = strlen(str);
@sunny1304
sunny1304 / simple_server.c
Created Aug 4, 2014
simple server example
View simple_server.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#define PORT 7890
View daemon_c.c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <stdbool.h>
#include <sys/types.h>
#include <sys/stat.h>
int main(int argc, char* argv[])
{
@sunny1304
sunny1304 / hello.c
Created Jul 2, 2014
Very basic char device driver
View hello.c
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/fs.h>
#include <linux/cdev.h>
#include <linux/semaphore.h>
#include <asm/uaccess.h>
@sunny1304
sunny1304 / Makefile
Created Jul 2, 2014
Makefile for kernel module
View Makefile
# If KERNELRELEASE is defined, we've been invoked from the
# kernel build system and can use its language.
ifneq ($(KERNELRELEASE),)
obj-m := hello.o
# Otherwise we were called directly from the command
# line; invoke the kernel build system.
else
KERNELDIR ?= /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:
@sunny1304
sunny1304 / naive_string_match.c
Created Jun 15, 2014
simple string match algorithm
View naive_string_match.c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int string_match(char* str, char* pattern)
{
size_t str_len = strlen(str);
size_t pattern_len = strlen(pattern);
size_t len_diff = str_len - pattern_len;
@sunny1304
sunny1304 / binary_tree_1.cpp
Created Apr 9, 2014
binary tree experiment.
View binary_tree_1.cpp
#include <iostream>
struct Node
{
int content;
Node* left;
Node* right;
Node(int,Node*,Node*);
static void add_child(Node* parent, Node* child);
};
View singleton_object.cpp
#include <iostream>
#include <string>
using namespace std;
class Car
{
static Car* single_instance_declared;
string _name;
string _engine;
int _wheels;