Menu Home

linux

linux coredump调试

os : ubuntu 12.04 开启coredump: ulimit -c 1024 g++ 添加编译参数: g++ -g -ggdb 执行程序,crash后会在项目文件夹中生成core文件,使用core文件调试: gdb –core=core 接下来就是常规gdb调试, 如需要导入源代码,在gdb中执行: file

ffmpeg的内部Video Buffer管理和传送机制

ffmpeg的内部Video Buffer管理和传送机制 本文主要介绍ffmpeg解码器内部管理Video Buffer的原理和过程,ffmpeg的Videobuffer为内部管理,其流程大致为:注册处理函数->帧级释放->帧级申请->清空。 1 注册get_buffer()和release_buffer() FFAPI_InitCodec() avcodec_alloc_context() avcodec_alloc_context2() avcodec_get_context_default2(AVCodecContext *s,…){ …… s->get_buffer = avcodec_default_get_buffer; s->release_buffer = avcodec_default_release_buffer; …… } 2帧级的内存申请和释放调用

开机自动启动x11vnc脚本

#!/bin/sh while true do AUTH_ID=`ps -ef | grep auth | grep -v grep |grep -v xinitrc | awk ‘{print $13}’` if [ “$AUTH_ID” = “” ];then echo “waiting for ready, retry 10s later…” else x11vnc -auth $AUTH_ID -display :0 -xdamage -ncache_cr fi sleep 10 done os: opensuse 11.4

linux c清理系统文件缓存—— posix_fadvise

OS : opensuse11.4 需求:判断磁盘是否存在,不想搞的很复杂也不想用写的方式来确定磁盘的存在,所以就想用读的方式来确定,但是呢,系统有cache,所有即使在拔去硬盘的情况下依然能读到文件,尝试了O_SYNC O_DIRECT对read都无效,搞了整1天,汗流浃背,找啊找啊,用posix_fadvise可以达到目的。有别的简单方法的,求指教。 ps : 一个好工具vmtouch 代码示例:

linux kernel driver自动创建设备

static int watchdog_init(void) { wdt_major = register_chrdev(0, “lte8718wdt”, <e8718wdt_fopts); wdt_class = class_create(THIS_MODULE, wdt_name); device_create(wdt_class, NULL, MKDEV(wdt_major, 0), NULL, wdt_name); } static int watchdog_exit(void) { device_destroy(wdt_class, MKDEV(wdt_major, 0)); class_destroy(wdt_class); unregister_chrdev(lte8718wdt_major, “lte8718wdt”); }

mac下vim + taglist + ctags

mac下vim + taglist + ctags 1 . 下载 taglist http://www.vim.org/scripts/script.php?script_id=273 2. 解压缩后拷贝 plugin和doc文件到~/.vim文件夹,进入doc文件夹,运行vim ,输入命令:helptags . 3. 因为mac自带的ctags程序不是exuberant ctags, 所以使用时会出现问题,需要自己下载ctags编译安装到非/usr/bin 目录下: http://sourceforge.net/projects/ctags/files/ctags/5.8/ctags-5.8.tar.gz/download 4.打开vimrc配置文件加入ctags路径:let Tlist_Ctags_Cmd=’/Users/xxx/bin/ctags’

LINUX下QT For ARM开发环境

LINUX下QT For ARM开发环境 OS: ubuntu 12.1 gcc: 4.6.3 arm gcc: 4.5.1 QT: qt-x11-opensource-src-4.5.3 QT-embedded: qt-embedded-linux-opensource-src-4.5.3 编译qt-x11-opensource-src-4.5.3 ./configure –qvfb make cd tools/qvfb //进入此目录,准备对它进行编译 make sudo make install 编译过程中出现的错误: error: ‘ppd_file_t’ does not name a type 解决方法: 打开src/gui/painting/qcups_p.h做如下修改: #ifndef QT_NO_CUPS #include //加入ppd头文件 QT_BEGIN_NAMESPACE 安装 arm-linux-gcc (略) 编译qt-embedded-linux-opensource-src-4.5.3 ./configure -embedded arm -qt-libpng make […]

ubuntu下设置ftp

ubuntu下设置ftp OS: ubuntu 12.04 安装vsftpd apt-get install vsftpd 编辑 /etc/vsftpd.conf listen=YES #anonymous_enable=YES local_enable=YES write_enable=YES #anon_upload_enable=YES anonymous_enable=NO #默认是允许 dirmessage_enable=YES # 允许进入文件夹 xferlog_enable=YES # 允许 ftp 日志记录允许 connect_from_port_20=YES # 允许使用20号端口作为数据传送端口 secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd rsa_cert_file=/etc/ssl/private/vsftpd.pem 设置ftp文件夹 mkdir -p /home/ftp/upload mkdir -p /home/ftp/download chmod 755 /home/ftp chmod 777 /home/ftp/upload chmod 755 /home/ftp/download 设置ftp用户 增加ftp组:groupadd ftpgroup […]

linux c获取系统网卡信息

OS:ubuntu 12.04 int getNetCardCount() { int nCount = 0; FILE *file = fopen(“/proc/net/dev”, “r”); if(!file) { debug(“Open /proc/net/dev failed by %s !\n”, strerror(errno)); return nCount; } char szLine[512]; fgets(szLine, sizeof(szLine), file); fgets(szLine, sizeof(szLine), file); while(fgets(szLine, sizeof(szLine), file)) { char szName[128] = {0}; sscanf(szLine, “%s”, szName); int nLen = strlen(szName); if(nLen <= […]

APUE的编译问题

APUE的编译问题 本文解决一些APUE一书中例子编译过程中的问题 OS: ubuntu 12.04 问题 /usr/include/bits/timex.h:31:7:error: expect ‘:’ , ‘,’ , ‘;’ , ‘}’ or ‘__attribute__’ 解决 apue.2e/ipp/ipp.h中 #define status u.st 与 timex.h中的 status 冲突,更改 #define Status u.st 问题 ARG_MAX 未定义 解决 在include/apue.h中加入 #define ARG_MAX 4096 在threadctl/getenv1.c 加入 #include “../include/apue.h” 在threadctl/getenv3.c 加入 #include “../include/apue.h” OS: mac os 10.7.4 问题 […]

使用modeline强制屏幕分辨率

OS:ubuntu 12.04 生成Modeline cvt 1440 900 60 #命令格式:横向分辨率 纵向分辨率 刷新率 输出结果可能如下,其中Modeline行即是我们需要的: # 1440×900 59.89 Hz (CVT 1.30MA) hsync: 55.93 kHz; pclk: 106.50 MHz Modeline “1440x900_60.00” 106.50 1440 1528 1672 1904 900 903 909 934 -hsync +vsync 查看系统当前的屏幕输出端口 xrandr 我的输出结果如下: HDMI-1 connected 1920×1080+0+0 (normal left inverted right x axis y axis) […]