Linux
__BMGT()
___
展开
-
Linux 自启动服务
复制自定义的shell文件到 /etc/init.d/ 目录下设置shell 文件的 一些配置信息 ,在#注释中配置chkconfig --add name.service 添加服务chkconfig name.service on/off 开机启动或者关闭service name.service start/stop 开启服务或者关闭chkconfig --del name.service 删除服务在这个shell的脚本中某些 环境变量 没有,需要自己加上。# chkco.原创 2021-11-24 17:36:51 · 1654 阅读 · 0 评论 -
Flutter 加载 pdf
Dart async 和 await 超级麻烦没有阻塞的调用法,即使await 上层函数 需要 async,还好async有个complete函数,可以用1.局部变量+complete 完成list的初始化,2.也因为线程,没有共享变量的冲突问题。flutter用的dart 的 异步实在是坑,没有阻塞的调用法。比如future.get()阻塞并且直接取值了,超级方便。import 'dart:async';import 'dart:io';import 'dart:type.原创 2021-11-09 19:08:04 · 3367 阅读 · 0 评论 -
Linux 制作一个规定大小的空数据文件
dd if=/dev/zero of=entry2.bin bs=7680 count=1原创 2021-10-07 13:31:45 · 185 阅读 · 0 评论 -
Linux C 模拟 constructor and destructor
Linux 复制粘贴 分为 缓冲区 和 系统剪贴板1.缓冲区只能在本编辑内有效2.系统剪贴板可以粘贴到外部cat "content" | xclip -selection c 复制到系统剪贴板,可以粘贴到外部!设置段.ctors构造函数?.dtors析构函数?#include<stdio.h>void my_init_0(){ printf("init 0 OK\n");}void my_init_1(){ printf("init 1 O.原创 2021-10-03 20:59:45 · 247 阅读 · 0 评论 -
Linux Writing Simple Command
#include<unistd.h>#include<stdio.h>int main(int argc,char *argv[]){ int ch; printf("begin\n"); printf("%d,%d\n",optind,opterr); while((ch=getopt(argc,argv,"abc:"))!=-1){ switch(ch){ .原创 2021-09-25 19:42:12 · 70 阅读 · 0 评论 -
Linux 驱动开发简单实例
驱动源码:#include <linux/init.h>#include <linux/module.h>#include <linux/kernel.h>#include <linux/fs.h>#include <linux/delay.h> #define major_version 200#define driver1_name "driver1"static char read_buf[100] = "Hell转载 2021-08-03 19:17:07 · 986 阅读 · 0 评论 -
epoll simple demo using stdin stdout
#include<cstdio>#include<unistd.h>#include<sys/epoll.h>constexpr int max_events=10;int main(){ int efd = epoll_create(1024); if(efd == -1){ printf("epoll ceate failed"); return -1; .原创 2021-07-08 15:32:26 · 279 阅读 · 0 评论 -
Linux 域名解析
#include<iostream>#include<unistd.h>#include<netdb.h>#include<sys/types.h>#include<netinet/in.h>#include<sys/socket.h>#include<arpa/inet.h>using namespace std;int main(){ struct hostent *h; .原创 2021-07-05 18:13:10 · 121 阅读 · 0 评论 -
vmware workstation 共享文件夹 (Linux)
/usr/bin/vmhgfs-fuse .host:/ /home/xiuye/shares -o subtype=vmhgfs-fuse,allow_other原创 2021-03-28 21:42:38 · 314 阅读 · 0 评论 -
0xb8000 显示器可以换行输出字符
#include"gdt.h"//screen only here size#define screen_width 80#define screen_height 25extern "C" void clear_screen();extern "C" void print_char(u8 x,u8 y,char c){ //firstly,check pos if(x>=screen_width){ y++; x=0; } if(y>=scree.原创 2021-03-27 21:21:13 · 1143 阅读 · 4 评论 -
CMake arm 编译 参数设置
#THIS FILE IS AUTO GENERATED FROM THE TEMPLATE! DO NOT CHANGE!set(CMAKE_SYSTEM_NAME Generic)set(CMAKE_SYSTEM_VERSION 1)cmake_minimum_required(VERSION 3.17)# specify cross compilers and toolsset(CMAKE_C_COMPILER arm-none-eabi-gcc)set(CMAKE_CXX_COMPI.原创 2021-02-22 16:57:52 · 2519 阅读 · 2 评论 -
C++ make script demo
#include"../common"using namespace std;#ifdef __cplusplusextern "C" {#endifint add(int x,int y){ return x+y;}#ifdef __cplusplus}#endifint main(){ [out=std::ref(std::cout<<"Result from C code: "<<add(1,2))](){ out.原创 2020-08-14 03:38:51 · 167 阅读 · 0 评论 -
MySQL info by shell script
#!/bin/shINTERVAL=5PREFIX=$INTERVAL-sec-statusRUNFILE=/home/benchmarks/running #not exist!!!ACCOUNT='-uroot -p123456'mysql world $ACCOUNT -e 'SHOW GLOBAL VARIABLES' >> mysql-variables# while test -e $RUNFILE;do file=$(date +%F_%I) sle.原创 2020-07-30 15:29:21 · 170 阅读 · 0 评论 -
Linux socket udp getting data from daytime[service]
#include"../common"/*https://github.com/XiuyeXYE/cpp*/int main(int argc,char *argv[]){ const char *host; int sockfd; socklen_t length,result; struct sockaddr_in address; struct hostent *hostinfo; struct servent *servinfo; .原创 2020-07-16 21:42:27 · 144 阅读 · 0 评论 -
Linux select read from stdin(keyboard)
#include"../common"/*https://github.com/XiuyeXYE/cpp*/int main(){ char buffer[128]; int result,nread; fd_set inputs,testfds; struct timeval timeout; FD_ZERO(&inputs); // FD_SET(0,&inputs);//stdin FD_SET(fileno(s.原创 2020-07-16 19:37:20 · 424 阅读 · 0 评论 -
网络 TCP 建立链接和释放 握手图
建立连接 三次握手关闭连接 四次握手转载 2020-07-15 18:25:14 · 140 阅读 · 0 评论 -
Linux multi-pthread
#include"../common"/*https://github.com/XiuyeXYE/cpp*//*g++ filename.cpp -lpthread*/#define NUM_THREADS 6void *thread_function(void *arg);int main() { int res; pthread_t a_thread[NUM_THREADS]; void *thread_result; int lots_of_th.转载 2020-07-15 00:21:56 · 132 阅读 · 0 评论 -
Linux cancel a pthread
#include"../common"/*https://github.com/XiuyeXYE/cpp*//*g++ filename.cpp -lpthread*/void *thread_function(void *arg);int main() { int res; pthread_t a_thread; void *thread_result; res = pthread_create(&a_thread, NULL, thread_.转载 2020-07-15 00:14:13 · 105 阅读 · 0 评论 -
Linux pthread attributes settings
#include"../common"/*https://github.com/XiuyeXYE/cpp*//*g++ filename.cpp -lpthread*/void *thread_function(void *arg);char message[] = "Hello World";int thread_finished = 0;int main() { int res; pthread_t a_thread; pthread_attr_t thre.转载 2020-07-15 00:05:27 · 127 阅读 · 0 评论 -
Linux mutex
#include"../common"/*https://github.com/XiuyeXYE/cpp*/void *thread_function(void *arg);pthread_mutex_t work_mutex; /* protects both work_area and time_to_exit */#define WORK_SIZE 1024char work_area[WORK_SIZE];int time_to_exit = 0;int main()..转载 2020-07-14 23:47:48 · 202 阅读 · 0 评论 -
Linux semaphore: sem_init sem_post sem_wait
#include"../common"/*https://github.com/XiuyeXYE/cpp*/void *thread_function(void *arg);sem_t bin_sem;#define WORK_SIZE 1024char work_area[WORK_SIZE];int main() { int res; pthread_t a_thread; void *thread_result; res = sem_init(&..转载 2020-07-14 23:32:56 · 482 阅读 · 0 评论 -
Linux multi-thread : pthread : basic code
#include"../common"/*https://github.com/XiuyeXYE/cpp*/void *thread_func(void *arg);char message[] = "Hello World";int main(){ int res; pthread_t a_thread; void *thread_res; res = pthread_create(&a_thread,NULL,thread_func,(.原创 2020-07-14 23:06:46 · 176 阅读 · 0 评论 -
Linux 选择内存分配机制
转载 2020-07-14 15:06:07 · 167 阅读 · 0 评论 -
Linux write code for daemon process
daemon 有两个通用的需求:它必须以 init 的子进程运行;并且它不能连接到终端。一般来说,一个程序执行以下步骤成为一个 daemon 程序:1. 调用 fork()。这将创建一个新进程,这个新进程将成为 daemon。2. 在父进程中调用 exit()。确保原始父进程(daemon 的祖父)控制它的子进程完全终止,daemon 的父进程不再运行,并且 daemon 不是进程组领导者。最后一点是成功完成下一步骤的必需条件。3. 调用 setsid(),给 daemon 创建一个新的进程组.转载 2020-07-12 23:22:58 · 176 阅读 · 0 评论 -
异步IO实现方法(如果内核或者系统API不支持,需要自己实现)
首先,让我们看一看为什么应用开发者会需要异步 I/O:1.执行 I/O 而不阻塞2.分离 I/O 排队、提交 I/O 到内核、以及接收操作完成通知。第一点和性能有关,如果 I/O 操作从不阻塞,则 I/O 的等待开销将接近 0,进程就不会被 I/O 束缚;第二点则和程序编写相关,它仅仅是另一种处理 I/O 的方式而已。达到这些目标最常用的方法是使用线程(调度相关的问题将在第五章和第六章彻底讨论)。这个方法涉及到以下的编程任务:1. 创建一个线程池,其中的“工作线程”处理所有 I/O。2..转载 2020-07-12 03:17:44 · 538 阅读 · 0 评论 -
C realloc based on Linux mremap [efficiency]
Linux 提供 mremap()系统调用来扩大或者缩小指定映射的大小,这个函数是 Linux 系统特有的:#define _GNU_SOURCE#include <unistd.h>#include <sys/mman.h>void * mremap (void *addr, size_t old_size,size_t new_size, unsigned long flags);ibc 库使用 mremap()来实现高效的 realloc(),这是一个重新调.转载 2020-07-12 02:49:19 · 247 阅读 · 0 评论 -
MySQL ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/tmp/mysql.sock‘ (2)
[mysqld]#skip-grant-tablescharacter_set_server = utf8mb4basedir=/home/application/mysql8.0.20#datadir=/var/lib/mysqldatadir=/home/application/mysql8.0.20/datasocket=/var/lib/mysql/mysql.sock#socket=/home/application/mysql8.0.20/socks/mysql.sock# D.原创 2020-07-10 01:24:46 · 175 阅读 · 0 评论 -
Linux swap settings for mysql
1)创建用于交换分区的文件(block_size、number_of_block 大小可以根据机器本身配置情况进行自定义,)[root@mysql01 ~]# dd if=/dev/zero of=/mnt/swap bs=1M count=4096 2)设置交换分区文件:[root@mysql01 ~]# mkswap /mnt/swap 3)立即启用交换分区文件[root@mysql01 ~]# swapon /mnt/swap 温馨提示:如果在/etc/rc.local中有"sw.转载 2020-07-10 00:48:52 · 143 阅读 · 0 评论 -
Linux Mysql password settings
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';flush PRIVILEGES;原创 2020-07-10 00:11:20 · 195 阅读 · 0 评论 -
网络层上的网络协议 结构图
转载 2020-07-06 20:39:45 · 475 阅读 · 0 评论 -
Java 字节码 组成 二进制结构
ClassFile { u4 magic; //Class 文件的标志 u2 minor_version;//Class 的小版本号 u2 major_version;//Class 的大版本号 u2 constant_pool_count;//常量池的数量 cp_info constant_pool[constant_pool_count-1];//常量池.转载 2020-07-06 18:54:39 · 251 阅读 · 0 评论 -
简单的实现 malloc free API (for studying)
#include"xylib/xiuye"#include<sys/types.h>#include<unistd.h>#include<cstdio>using namespace xiuye;#define align4(x) (((((x)-1)>>2)<<2)+4)#define align8(x) (((((x)-1)>>3)<<3)+8)#define ptr_size sizeof(siz.转载 2020-07-04 17:29:37 · 218 阅读 · 0 评论 -
简单的 malloc ... API 实现
#include <assert.h>#include <string.h>#include <sys/types.h>#include <unistd.h>// Don't include stdlb since the names will conflict?// TODO: align// sbrk some extra space every time we need it.// This does no bookkeeping a.转载 2020-07-03 15:02:39 · 220 阅读 · 0 评论 -
网络 IPv4 TCP 包头结构
转载 2020-07-02 22:13:25 · 1126 阅读 · 0 评论 -
Linux sample using fork and signal
#include"xylib/xiuye"#include<unistd.h>#include <signal.h>// #include <sys/types.h>#include <wait.h>using namespace xiuye;//println_sepetator = ';';//在外面无法使用命名空间内的全局变量!namespace test{ int a = 100;}void func(int s){.原创 2020-07-02 00:08:54 · 167 阅读 · 0 评论 -
Android adb shell chmod命令
在adb shell 修改android文件的权限,命令:chmod nnn filen--数字 n rwx 三个bit位 1:truefile--文件名原创 2020-01-19 11:57:07 · 4838 阅读 · 0 评论 -
yum list
[xiuye@localhost emojicode-master]$ yum list *sdl*已加载插件:fastestmirror, langpacksDetermining fastest mirrors * base: mirrors.btte.net * epel: mirrors.opencas.cn * extras: centos.ustc.edu.cn * nux原创 2016-03-18 22:48:03 · 1595 阅读 · 0 评论 -
c语言获取当前路径
#include#includeint main(){ char *buffer; if((buffer = getcwd(NULL,0))==NULL){ perror("getcwd error"); } else{ printf("%s\n",buffer); free(buffer); } }getcwd函数原型:char *getc原创 2016-12-30 10:43:33 · 7307 阅读 · 0 评论 -
内嵌汇编 jmp
#includeusing namespace std;int main(){ R: cout << "see you" << endl; //goto R; __asm{ mov eax,R jmp eax } return 0;}see yousee yousee yousee yousee yousee yousee yousee yo原创 2017-01-04 11:35:24 · 1223 阅读 · 0 评论 -
AT&T内嵌汇编
#includeusing namespace std;int main(){ int a = 3; int b = 5; int c = 0; __asm__ __volatile__("mov %1,%0":"=r"(c):"r"(b));//%0 --> c ; %1 --> b cout << "a := " << a << endl; cout << "b := " <原创 2017-01-03 16:34:13 · 429 阅读 · 0 评论