原创 open的時候傳遞O_CREAT出現__open_missing_mode的原因
當你代碼中使用open("das",O_CREAT)的時候,注意沒有第三個參數。如果你用autoconf生成Makefile來編譯的化會出現如下問題error: call to ‘__open_missing_mode’ declared
原创 如何讓linux下的動態庫so能執行(節.interp的使用)
感覺對自己有用 給點個贊哈 代碼如下 mytest.c #include<stdio.h> #include<stdlib.h> //在elf格式中加入一個節.interp 此節含有 ELF 程序解析器的路徑名 //如果動態庫不包括
原创 uevent的基本使用1
#include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/socket.h> #include <sys/stat.h> #include <
原创 libevent對信號監控
#include <stdio.h> #include <stdlib.h> #include <event2/bufferevent.h> #include <event2/buffer.h> #include <event2/list
原创 libevent 定時器的使用
#include <stdio.h> #include <stdlib.h> #include <event2/bufferevent.h> #include <event2/buffer.h> #include <event2/li
原创 libevent 之 event config的相關函數介紹
1) struct event_config *event_config_new(void) 函數功能: 分配一個base 內部配置結構體 參數: 無 返回值: 成功返回指向struct event_config的指針 失
原创 x86_64 系統調用號 與寄存器傳參
轉載自 http://blog.rchapman.org/posts/Linux_System_Call_Table_for_x86_64/ PUBLISHED THU, NOV 29, 2012 Linux 4.7 (pulled
原创 libevent 之 基本服務端的使用
#include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> #include <string.h> #include <sys/s
原创 libevent 之如何將信號和epoll相結合 簡化版
/****************************************************** 原理: 創建一個管道,一個讀 一個寫, 讓epoll監控讀端,如果信號發生,就將信號值寫入到管道中 這樣epoll
原创 利用ptrace進行注入
轉載:https://bbs.pediy.com/thread-246948.htm 插入的代碼 #include <stdio.h> #include <unistd.h> int main() { __asm_
原创 linux設置某函數在main函數之前之後執行(通過對.ctors和.dtors節的設置)
第一種方法: #include <stdio.h> #include <stdlib.h> //此函數在main之前執行 void before_main(void) __attribute__((constructor)); //
原创 如何將linux audit產生的審計信息傳入到其他程序中(利用audispd)
前提了解: 首先我們要了解的一點前提是, 在audit啓動的時候會到日誌分發做初始化,其中包括對/sbin/audispd的啓動(在配置文 件/etc/audit/auditd.conf中配置), 然後審計
原创 libevent的鎖機制之調試鎖的使用
1)調試鎖的啓用 evthread_use_pthreads() //此函數的介紹看我的上一篇博客 evthread_enable_lock_debugging() //此函數的介紹看下面 看代碼這兩個
原创 libevent的鎖機制之evthread_use_pthreads()介紹
對於linux libevent已經提供了一套鎖機制,我們就不用自己在寫一些鎖相關的回掉函數(用evthread_set_lock_callbacks設置)供libevent使用, 我們在linux上使用鎖機制的時候只要使用int evt
原创 linux c在子函數中獲得函數返回地址, 獲得當前地址x86_64
#include <stdio.h> #include <stdlib.h> int fun() { unsigned long ret_addr = 0; __asm__("push %%rax\n\t"