易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 :

Linux环境进程间通信(一)


Linux环境进程间通信(一)
管道及有名管道
 
 
 
级别: 初级
郑彦兴 (mlinux@163.com)国防科大计算机学院
2002 年 12 月 11 日
在本系列序中作者概述了 linux 进程间通信的几种主要手段。其中管道和有名管道是最早的进程间通信机制之一,管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。 认清管道和有名管道的读写规则是在程序中应用它们的关键,本文在详细讨论了管道和有名管道的通信机制的基础上,用实例对其读写规则进行了程序验证,这样做有利于增强读者对读写规则的感性认识,同时也提供了应用范例。
1、 管道概述及相关API应用
1.1 管道相关的关键概念
管道是Linux支持的最初Unix IPC形式之一,具有以下特点:
管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道;
只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程);
单独构成一种独立的文件系统:管道对于管道两端的进程而言,就是一个文件,但它不是普通的文件,它不属于某种文件系统,而是自立门户,单独构成一种文件系统,并且只存在与内存中。 ......

在Linux环境下调试静态库

      这两天同事在Octeon开发板上调试Linux程序,遇到了一个问题:无法让gdb单步跟踪进入静态库(libcrypto.a和libcvmx.a)对应的源文件。
      我自己在PC上写了一个小程序进行验证,发现果然是这样。如果把全部.o文件(用-ggdb3选项编译,带调试信息)直接编译成可执行文件,是可以跟踪进入.o文件对应的源文件的;如果先把其中几个.o文件用ar命令打包成静态库,再和主程序的.o文件一起编译成可执行文件,gdb就跟踪不进去了。
      观察了一下.a文件和.o文件的大小,我发现.a文件的体积远远小于全部.o文件的总和,看来是在打包的过程中把调试信息弄丢了。上网查了一下,发现只要使用-s(小写s,不是大写S)选项,就可以在.a文件中保留符号信息。
      于是先修改$OCTEON_ROOT/components/crypto-api/core/crypto.mk文件的第22行,将“CFLAGS_CRYPTO += -O2”改为“CFLAGS_CRYPTO += -ggdb3”,再修改$OCTEON_ROOT/components/crypto-api/core/crypto/crypto.mk文件的第146行,将“$(AR) -r $@ $^”改为“$(AR) -rs $@ $^&r ......

Linux 命令的用法

功能说明:查找文件。
语  法:which [文件...]
补充说明:which指令会在环境变量$PATH设置的目录里查找符合条件的文件。
参  数:
 -n<文件名长度>  指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
 -p<文件名长度>  与-n参数相同,但此处的<文件名长度>包括了文件的路径。
 -w  指定输出时栏位的宽度。
 -V  显示版本信息。
例子
$ which rsync
/usr/bin/rsync
例子
#! /bin/sh
mrsync=$(which rsync)
echo  $mrsync ......

关于linux下两种内存引导模式的区别


关于linux下两种内存引导模式的区别
Linux 的 initrd 技术是一个非常普遍使用的机制,linux2.6 内核的 initrd 的文件格式由原来的文件系统镜像文件转变成了 cpio 格式,变化不仅反映在文件格式上, linux 内核对这两种格式的 initrd 的处理有着截然的不同。

initrd 的英文含义是 boot loader initialized RAM disk,就是由 boot loader 初始化的内存盘。在 linux内核启动前, boot loader 会将存储介质中的 initrd 文件加载到内存,内核启动时会在访问真正的根文件系统前先访问该内存中的 initrd 文件系统。在 boot loader 配置了 initrd 的情况下,内核启动被分成了两个阶段,第一阶段先执行 initrd 文件系统中的"某个文件",完成加载驱动
模块等任务,第二阶段才会执行真正的根文件系统中的 /sbin/init 进程。这里提到的"某个文件",Linux2.6 内核会同以前版本内核的不同,所以这里暂时使用了"某个文件"这个称呼,后面会详细讲到。第一阶段启动的目的是为第二阶段的启动扫清一切障爱,最主要的是加载根文件系统存储介质的驱动模块。我们知道根文件系统可以存储在包括IDE、SCSI、USB在内的多种介质上,如果将这些设备的驱动都编译进内核,可以 ......

linux下的主要文件


linux下的主要文件
/boot/grub/grub.conf    GRUB configuration file
/boot/module-info-*    Module information for the Linux kernel
/boot/System.map-*    Map of the Linux kernel
/boot/vmlinuz-*    Linux kernel
/etc/aliases    Mail aliases
/etc/at.deny    User IDs of users forbidden to use the at command
/etc/auto.master    Configuration file for the autofs daemon, which
automatically mounts
filesystems
/etc/auto.misc    Automounter map file
/etc/bashrc                    Systemwide functions and aliases for the
bash shell
/etc/cron.daily/*    Daily cron jobs
/etc/cron.hourly/*    Hourly cron jobs
/etc/cron.monthly/*    Monthly cron jobs
/etc/cron.weekly/*    Weekly cron jobs
/etc/crontab    System cron file
/etc/cups/*    Printer configuration files
/etc/defa ......

在Linux下查看端口的使用情况及启动

Netstat -tln 命令是用来查看linux的端口使用情况
/etc/init.d/vsftp start 是用来启动ftp端口~!
看文件/etc/services
netstat
查看已经连接的服务端口(ESTABLISHED)
netstat -a
查看所有的服务端口(LISTEN,ESTABLISHED)
sudo netstat -ap
查看所有的服务端口并显示对应的服务程序名
nmap <扫描类型><扫描参数>
例如:
nmap localhost
nmap -p 1024-65535 localhost
nmap -PT 192.168.1.127-245
当我们使用 netstat -apn 查看网络连接的时候,会发现很多类似下面的内容:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 52 218.104.81.152:7710 211.100.39.250:29488 ESTABLISHED 6111/1
显示这台服务器开放了7710端口,那么这个端口属于哪个程序呢?我们可以使用 lsof -i :7710 命令来查询:
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
sshd 1990 root 3u IPv4 4836 TCP *:7710 (LISTEN)
这样,我们就知道了7710端口是属于sshd程序的。
本文出处:http://www.bitscn.com/os/linux/200803/131774.html ......
总记录数:40319; 总页数:6720; 每页6 条; 首页 上一页 [1717] [1718] [1719] [1720] 1721 [1722] [1723] [1724] [1725] [1726]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号