
编程实践
文章平均质量分 60
路漫漫其修远.
工程师
展开
-
获取指定IP的MAC地址
获取指定IP的MAC地址原创 2009-09-03 00:32:00 · 2559 阅读 · 1 评论 -
Linux下检测网线的连接和断开
当网线连接状态发生变化时,内核会产生一个UEVENT事件,并将事件信息发送到NETLINK_KOBJECT_UEVENT套接字。C程序通过NETLINK_SOCKET订阅并接收到这个事件,并可以在事件处理函数中获取事件信息并判断网线连接状态的变化类型。在上述代码中,首先创建NETLINK_SOCKET套接字并绑定到NETLINK_KOBJECT_UEVENT消息类型,然后订阅事件“add”和“remove”,最后循环接收内核事件并在事件处理函数中判断事件类型并执行相应操作。原创 2023-04-12 18:26:15 · 1547 阅读 · 0 评论 -
sscanf中存在空字符串会报错的问题怎么解决
sscanf中存在空字符串会报错的问题怎么解决原创 2023-02-25 10:27:22 · 918 阅读 · 0 评论 -
以Linux为基准通过VSCODE来看微软和谷歌代码风格差异
下面差异部分从左到右依次是Linux,Microsoft,Google1. 谷歌将头文件引用部分自动按照首字母升序进行排列,在有先后依赖关系的情况下可能会影响编译2. 括号、 循环语句、条件判断、单行长度3. 函数和数组下面是Linux内核源码main.c 一共1048行/* * linux/init/main.c * * Copyright (C) 1991, 1992 Linus Torvalds * * G....原创 2022-05-10 19:30:00 · 996 阅读 · 1 评论 -
epoll监测不到/sys/class目录下的读写事件?
EPOLL监测不到/sys/class目录下的读写事件?//-------------------------------------------------------------------------------------int GetWifiConnectionStatus(){ char buf[32] = {0}; FILE *fp = fopen("/sys/class/net/wlan0/operstate", "r"); if (!fp){原创 2022-05-10 09:59:54 · 352 阅读 · 1 评论 -
c/c++整型提升/类型提升
K&R C中关于整型提升(integral promotion)的定义为:"A character, a short integer, or an integer bit-field, all eithersigned or not, or an object of enumeration type, may be used in an expression wherever an integer maybe used. If an int can represent all the values ..转载 2022-01-14 09:02:37 · 945 阅读 · 0 评论 -
WebRTC 示例
WebRTC 示例这是一组小样本,展示了WebRTC API 的各个部分。GitHub 存储库中提供了所有示例的代码。大多数示例都使用了adapter.js,一个 shim 将应用程序与规范更改和前缀差异隔离开来。https://webrtc.org/getting-started/testing列出了对使用 Chrome 进行开发和测试有用的命令行标志。欢迎使用补丁和问题!有关说明,请参阅CONTRIBUTING.md。警告:强烈建议在测试这些样本时使用耳机,否则可能会导致系统出现..转载 2022-01-12 14:46:43 · 724 阅读 · 0 评论 -
在Visual Studio中构建编译FFmpeg
FFmpeg项目的默认构建链使用标准的gnu autotools(对于gnu开源项目来说是很好的标准)。对于经常在linux上进行编译的人员来说,configure和make的使用可能相当熟悉,但是对于许多Windows开发人员而言,这些似乎有些陌生。事实是,要在Windows上使用这些工具,需要设置一个MSYS / Cygwin环境,这通常说起来容易做起来难。即使在此之后,大多数使用此环境的构建链都需要基于gcc的编译器,在Windows上该编译器为MinGW。 gcc是一个很好的编译器,但是MinGW可翻译 2021-03-24 09:06:03 · 704 阅读 · 0 评论 -
比较标准的一个bin2c.c
/* * bin2c - compresses data files & converts the result to C source code * Copyright (C) 1998-2000 Anders Widell <awl@hem.passagen.se> * * This program is free software; you can redistribute it and/or modify * it under the terms o...原创 2020-12-03 18:49:45 · 748 阅读 · 0 评论 -
gdb调试程序函数名为问号
gdb调试程序函数名为问号gdb调试程序函数名为问号-g 选项-O0 选项去掉stripgdb调试程序函数名为问号-g 选项-O0 选项去掉strip原创 2020-07-03 10:04:16 · 1525 阅读 · 2 评论 -
Artistic Style 3.1
Artistic Style 3.1 Maintained by: Jim Pattee Original Author: Tal DavidsonUsage:------ astyle [OPTIONS] File1 File2 File3...原创 2020-04-19 00:28:05 · 791 阅读 · 0 评论 -
我的AStyle编码风格
我的AStyle编码风格我的AStyle参数我的AStyle参数astyle --style=linux --indent=force-tab=4 --convert-tabs --pad-oper --unpad-paren --break-blocks=all --delete-empty-lines %f原创 2020-04-13 00:29:38 · 807 阅读 · 0 评论 -
VSCode+Conda配置
“Ctrl + Shift + P” :“Open Settings(JSON)”{ "python.pythonPath": "D:\\Miniconda3\\pythonw.exe", "terminal.integrated.shell.windows": "C:\\Windows\\System32\\cmd.exe", "terminal.integrated....原创 2020-01-03 18:23:15 · 12220 阅读 · 0 评论 -
ProcessLookupError: [Errno 3] No such process
错误提示:ProcessLookupError: [Errno 3] No such process解决方法:import psutil***if (psutil.pid_exists(pid)):*** p = psutil.Process(pid) p.dosomething原创 2020-01-03 18:13:49 · 4585 阅读 · 0 评论 -
RemoveError: 'setuptools' is a dependency of conda
错误提示RemoveError: ‘setuptools’ is a dependency of conda解决方法conda install -c anaconda setuptools或者conda update --force conda原创 2020-01-03 18:13:10 · 524 阅读 · 0 评论 -
PdhCollectQueryData和获取系统信息
[code=C/C++]/************************************************************************************** * Source: cpucpu.c/cpp * Description: * This program can used to get the percen原创 2008-06-17 19:22:00 · 4031 阅读 · 0 评论 -
字符串翻转的最短代码实现
char *strrev(char *str){ char *p1, *p2; if (! str || ! *str) return str; for (p1 = str, p2 = str + strlen(str) - 1; p2 > p1; ++p1, --p2) { *p1 ^= *p2;转载 2014-02-26 18:16:47 · 1080 阅读 · 0 评论 -
pthread_create()创建线程最大个数
线程应用程序最常见导致创建线程失败的原因是线程栈大小的设置。创建一个新的线程,默认情况下系统为线程栈预留了2MB的寻址空间。线程栈起始于进程虚拟 内存的高端地址,并向虚拟内存底端地址方向扩展。取决于线程本身的大小以及其它线程内存分配的情况,进程虚拟地址空间消耗过快可能导致创建线程失败。这里有一个测试程序可以看到,Linux下最多可以创建多少个线程。#include <pthread.h&...原创 2009-02-24 11:40:00 · 6722 阅读 · 4 评论 -
IE浏览器中如何安全地调用本地可执行程序
IE浏览器中如何安全地调用本地可执行程序转载 2011-02-24 18:08:00 · 3240 阅读 · 0 评论 -
控制台滚动字幕
#include <StdAfx.h>#include <windows.h>#include <stdio.h>#include <time.h>#include <conio.h>#include <string.h>int main(int argc, char* argv[]){ int i, ...原创 2009-11-21 22:25:00 · 1252 阅读 · 0 评论 -
scanf详细使用说明
scanf 原型:# include ;int scanf( const char *format, ... ); 函数 scanf() 是从标准输入流 stdin 中读内容的通用子程序,可以读入全部固有类型的数据并自动转换成机内形式。scanf() 是 printf() 的补函数。 在 C99 中,format 用 restrict 修饰。 format 指向的转载 2009-10-16 22:36:00 · 1538 阅读 · 0 评论 -
【编】编码知识:Unicode和UTF-8
有些问题,属于知识性问题。比如在程序中,我们经常用到 char szStr[32],strcpy(), sprintf()。当涉及到不同的编码,可能有些情况会超出我们的形象。那仅仅是因为我们忽略了某些常识。比如通常我们认为汉字占2个字节。实际情况则不然,UTF-8可能会占3到4个字节。所以在做字符串处理的时候,出现了越界,自己还不知道呢。这就是这里贴出编码只是的初衷。 为了统一全世界转载 2009-04-28 19:25:00 · 1448 阅读 · 0 评论 -
signal && sigaction
http://www.cnblogs.com/yoleung/articles/1339876.html 当服务器close一个连接时,若client端接着发数据。根据TCP协议的规定,会收到一个RST响应,client再往这个服务器发送数据时,系统会发出一个SIGPIPE信号给进程,告诉进程这个连接已经断开了,不要再写了。 根据信号的默认处理规则SIGPIPE信号的默认执转载 2009-03-17 10:59:00 · 1155 阅读 · 0 评论 -
C语言实现滚动字幕
#include <StdAfx.h>#include <stdio.h>#include <time.h>#include <conio.h>#include <string.h>#define TIME_INTERVAL (CLOCKS_PER_SEC / 50)int main(int argc, char* argv[...转载 2008-04-21 10:39:00 · 10513 阅读 · 1 评论 -
英文版XP VC控件汉字乱码
解决方案:将*.rc文件中的#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)#ifdef _WIN32LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US#pragma code_page(1252) #endif //_WIN32改为#if !defined(AFX_RESOURCE原创 2008-12-31 21:38:00 · 2262 阅读 · 0 评论 -
epoll/select/poll
Question:Everything I’ve read and experienced ( Tornado based apps ) leads me to believe that ePoll is a natural replacement for Select and Poll based networking, especially with Twisted. Which makes转载 2015-04-21 14:05:40 · 745 阅读 · 0 评论 -
全局变量、局部变量、静态全局变量、静态局部变量在内存里的区别
一、程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分: 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。 3、全局区(静态区)(static)— 全局变量和静转载 2015-04-21 14:06:56 · 7036 阅读 · 1 评论 -
一个趣味几何问题:Triangle_Puzzle
Recently a professor at MIT has put a new theory on right angled triangles that has challenged some accepted norms in Geometry. This theory, Professor John Mentriffe puts, will revolutionize area in m转载 2006-08-15 11:35:00 · 2863 阅读 · 0 评论 -
编程语言只是工具,结构算法才是灵魂
几位印度小哥在GitHub上建了一个各种Python算法的新手入门大全。从原理到代码,全都给你交代清楚了。为了让新手更加直观的理解,有的部分还配了动图。标星已经达到2.7W给出Github地址https://github.com/TheAlgorithms/Python这个项目主要包括两部分内容:一是各种算法的基本原理讲解,二是各种算法的代码实现。算法的代码实现算法的代码实...转载 2019-09-19 08:58:42 · 511 阅读 · 0 评论 -
Hello Valgrind!---Valgrind快速入门
原文来自:https://www.ibm.com/developerworks/cn/linux/l-cn-valgrind/目录1. valgrind简介1.1 valgrind的结构图1.2 linux下内存空间布置:2. Valgrind使用2.1 Valgrind用法2.2 Valgrind使用举例2.2.1 示例2.2.2 使用未初始化内存问题...转载 2019-04-19 10:21:24 · 469 阅读 · 1 评论 -
opencv_highgui24xxd.lib(cap_vfw.obj) : error LNK2019: 无法解析的外部符号 _AVIFileRelease@4,
错误提示:opencv_highgui24xxd.lib(cap_vfw.obj) : error LNK2019: 无法解析的外部符号 _AVIFileRelease@4,该符号在函数 “public: virtual void __thiscall CvCaptureAVI_VFW::close(void)” (?close@CvCaptureAVI_VFW@@UAEXXZ) 中被引用解决...原创 2018-12-24 15:49:33 · 804 阅读 · 0 评论 -
python之FTP上传和下载
# FTP操作import ftplibhost = '192.168.1.250'username = 'ftp_user1'password = '123456'file = '1.txt'f = ftplib.FTP(host) # 实例化FTP对象f.login(username, password) # 登录# 获取当前路径pwd_path = f.pwd()...转载 2018-04-18 12:23:25 · 1553 阅读 · 0 评论 -
Linus的代码品味之一
本文来自: 视频《TED演讲集:敬畏网络》品味:重写代码,排除特例,覆盖所有情况差品味: remove_list_entry(entry){ prev = NULL; walk = head; while (walk != entry){ pre = walk; walk = walk->next; } if (!prev) head = ent...转载 2016-09-02 11:36:39 · 1968 阅读 · 3 评论 -
Protocol Buffers
What are protocol buffers?Protocol buffers are a flexible, efficient, automated mechanism for serializing structured data – think XML, but smaller, faster, and simpler. You define how you want your d转载 2016-06-05 22:27:04 · 2898 阅读 · 0 评论 -
酒干倘卖无之递归算法
酒干倘卖无之递归算法还记得那首老歌么,酒干倘卖无,它蕴含着一个多么辛酸的故事。生活不易,勤俭节约资源回收再利用吧! 孩子的寒假作业还没做吧,里面一定有这样让大人都蒙圈的题目,计算机的酒量那是秒杀千百万瓶!题目:啤酒2元1瓶,4个瓶盖换一瓶,2个空瓶换1瓶问:100块钱可以喝多少瓶原创 2016-01-30 23:02:02 · 2081 阅读 · 2 评论 -
如何成为技术专家
一万小时的专业技术积累和丰富的实战 丹尼尔在《一万小时天才理论》提出一万小时定律,即要成为某个领域的专家,需要积累一万小时,如果每天工作中花在学习和实践上的时间达到4小时,那么成为一个领域的专家至少需要十年。 因此我们在工作中要善于利用时间,尽量保证20%的工作时间用在提升专业能力和运维效率方面。即使是加班时间也要把时间用在提升效率的工作上,避免加班仍是做重复性而无技术含量的事情。转载 2015-07-29 14:09:54 · 3071 阅读 · 2 评论 -
error: ‘O_DIRECT’ undeclared
#define _GNU_SOURCE原创 2019-05-27 21:34:14 · 3703 阅读 · 3 评论 -
TrimLeft C语言实现
/* delete space in the string */ContentTrimLeft( char* pDest, const char* pSrc, int iSrcLen ){ int i=0; const char * t = pSrc; while( i<iSrcLen && (*(t++) == ' ') ...原创 2008-04-16 10:49:00 · 1975 阅读 · 0 评论 -
读 《Windows程序设计》(2)
“简单地说,Unicode扩展自ASCII字符集。在严格的ASCII中,每个字符用7位表示,或者计算机上普遍使用的每字符有8位宽;而Unicode使用全16位字符集。这使得Unicode能够表示世界上所有的书写语言中可能用于计算机通讯的字符、象形文字和其它符号。”“Unicode影响到了计算机工业的每个部分,但也许会对操作系统和程序设计语言的影响最大。从这方面来看,我们已经上路了。Win原创 2006-12-15 16:12:00 · 1015 阅读 · 0 评论 -
网页播放器代码
转载 2006-08-21 10:19:00 · 1267 阅读 · 1 评论