LINUX
文章平均质量分 61
ssdsafsdsd
因为喜欢所以关注因为热爱所以投入
展开
-
undefined reference to 'floor'/undefined reference to `&
undefined reference to 'floor'/undefined reference to `&undefined reference to 'pow'/undefined reference to `& 今天用linux编译一个程序的时候遇到了一个小问题,如标题所示,先说解决方法在gcc 编译的时候加上-lm选项就好了,呵呵原因:floor/ceil/pow是原创 2012-10-20 21:08:46 · 9094 阅读 · 0 评论 -
SOCKET编程之使用AF_UNIX实现本机数据流通信示例
本程序由服务器端程序和客户端程序两部分组成。服务器端程序#include #include #include #include #include #include #include int main(){ int server_sockfd,client_sockfd; int server_len,client_len; struct sock原创 2012-11-19 17:08:13 · 7129 阅读 · 0 评论 -
Fodera16+windows双系统自动启动想要引导的系统的设置方法
默认启动Windows的例子:1. 首先找到Windows的menuentry.# cat /boot/grub2/grub.cfg | grep Windows结果:menuentry "Windows 7 (loader) (on /dev/sda1)"--class windows--class os{2. 设置转载 2012-11-20 16:29:43 · 1020 阅读 · 0 评论 -
进程间通信之共享内存
此程序实现两个普通进程间通过共享内存来进行通信,共享内存能够进行大数据量的通信,这一点事消息队列无法比拟的。在这里同时使用了信号量来保证两个进程间的读写同步。发送端源代码:#include #include #include #include #include #include #include #include #include int main(原创 2012-11-20 18:59:33 · 1355 阅读 · 0 评论 -
linux进程间通信精讲
linux进程间通信简介 进程是一个独立的资源分配单位,不同进程之间的资源是相互独立的,没有关联,不能在一个进程中直接访问另一个进程中的资源。但是,进程不是孤立的,不同的进程之间需要信息的交换以及状态的传递,因此需要进程间数据传递、同步与异步的机制。 这些机制并不是由哪些进程来进行直接管理,而是由操作系统进行管理。linux中提供了大量的进程间通信机制来实现同一个主机间原创 2012-11-17 21:03:55 · 2085 阅读 · 0 评论 -
使用AF_INET实现UDP点对点通信示例
此示例程序实现AF_INET实现UDP点对点通信示例,即采用AF_INET协议,数据传送方式为UDP数据报方式,主要功能是发送方向接收方发送一条简单的消息“hello world!”.服务器端要先运行,然后运行客户端程序客户端程序代码:#include #include #include #include #include #include #include原创 2012-11-20 18:31:39 · 2919 阅读 · 0 评论 -
进程间通信之信号量--使用信号实现生产者消费者问题
生产者消费者是数学中的一个经典的问题,也是编程中的一个经典问题。本示例采用信号量来解决这个问题,其实,最终也就是进程之间同步的问题。生产者源代码如下:#include #include #include #include #include #include int sem_id;void init(){ key_t key; int ret;原创 2012-11-20 18:51:18 · 3898 阅读 · 0 评论 -
linux中tty、pty、/dev/ttySn等概念讲解
基本概念:1》tty(终端设备的统称):tty一词源于Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后来这东西被键盘与显示器取代,所以现在叫终端比较合适。终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。2》pty(伪终端,虚拟终端):但是如果我们远程telnet到主机或原创 2013-01-22 20:50:22 · 2220 阅读 · 0 评论 -
linux编程经典书籍推荐
Linux 编程经典书籍推荐 成为一名精通 Linux 程序设计的高级程序员一直是不少朋友孜孜以求的目标。根据中华英才网统计数据,北京地区 Linux 程序员月薪平均为 Windows 程序员的 1.8 倍、Java 程序员的 2.6 倍, Linux 程序员年终奖金平均为 Windows 程序员的 2.9 倍。同时数据显示,随着工作经验的增长, Linux 程序员与 Windows 程转载 2013-01-19 21:09:42 · 936 阅读 · 0 评论 -
虚拟机安装的linux防止崩溃时候重新安装的方法
用过虚拟机的人都知道,这里专门讲的是linux,有时候很容易就崩溃了,或者说一个误操作,可能导致一些无法恢复的操作(具体的说,也不是不能恢复,其难度很大,成功率低),这时我们就要重装系统了。单独从安装系统的角度来讲,可能安装一个虚机并不是太费力,我们引导一下,吃个饭的功夫可能就好了。但是,对于我们做开发的人员,可能我们配置好程序啊,工具啊,或者一些服务器啥的,想从头重新配置下就很耗时间了。笔者今天原创 2013-03-14 15:15:35 · 4105 阅读 · 1 评论 -
配置samba服务器时,显示无权限登录或者不能创建文件
可以登录samba服务器,但是没有权限访问linux下的共享目录1、确保linux下防火墙关闭或者是开放共享目录权限 iptalbes -F2、确保samba服务器配置文件smb.conf设置没有问题,可网上查阅资料看配置办法3、确保setlinux关闭,可以用setenforce 0命令执行。 默认的,SELinux禁止网络上对Samba服务器上的共享目录进行写操作,即使你在smb.原创 2013-03-14 22:17:51 · 7118 阅读 · 0 评论 -
关闭SELinux的方法
关闭SELinux的两种方法 1 永久方法 – 需要重启服务器修改/etc/selinux/config文件中设置SELINUX=disabled ,然后重启服务器。2 临时方法 – 设置系统参数使用命令setenforce 0附:setenforce 1 设置SELinux 成为enforcing模式setenforce 0 设置SELinux 成为permi原创 2013-03-15 16:21:41 · 1092 阅读 · 0 评论 -
Using the Input Subsystem, Part II
http://www.linuxjournal.com/article/6429?page=0,1Mar 01, 2003 By Brad Hards inSysAdminNo matter how many buttons an input device has or how many kinds of events it can gener转载 2013-04-02 17:06:47 · 1273 阅读 · 0 评论 -
linux下优盘或者移动硬盘的挂载方法
在虚拟机上安装的Linux如果想让linux识别U盘,需要把鼠标先定位在虚拟机的linux里面,然后插入优盘,优盘才会被linux识别,再用fdisk -l 来查看U盘的情况。/dev/sda1 * 1 6 48163+ 83 Linux/dev/sda2 7 515 4088542+ 83 Linux/dev/sda3 516 776 2096482+ 82 Linux swap原创 2013-03-14 14:41:31 · 1687 阅读 · 0 评论 -
Autoconf/Automake自动创建Makefile文件
Autoconf/Automake工具自动生成Makefile 在linux下编程的时候,有时候工程项目很大,文件比较多,此时需要使用自动创建Makefile文件功能。也就是使用Autoconf/Automake工具自动生成Makefile.当前大多数软件包都是用此方法生成。 下面进行一个简短的介绍。参考例程,很快就可以学会。 Autoconf原创 2012-11-01 19:28:14 · 2058 阅读 · 0 评论 -
linux下编程使用math.h函数库
今天编一个小程序,提示很多在math.h中的函数找不到。这显然是函数库没有包含进来。原来只要简单的在gcc 时候加上-lm即可。也就是 gcc ****** -lml 表示库 m表示数学库原创 2013-04-10 14:40:40 · 5029 阅读 · 0 评论 -
使用消息队列实现两进程间实时通信的例子
由发送端和接收端组成,这里只是实现了发送端发送接收端接收,相当于半双工吧。编译,运行,发送端输入的数据将会在接收端显示出来,当在发送端输入end之后,发送端和接收端都会退出程序。可以使用ipcs -q命令查看系统中的信号量的状态发送端源代码#include #include #include #include #include #include #include原创 2012-11-16 20:03:34 · 6592 阅读 · 0 评论 -
linux中awk的用法
awk的用法首先我们创建一个要测试的文件test内容:1 2 3 9test:test1str:d strd第一个 awk让我们继续,开始使用 awk,以了解其工作原理。在命令行中输入以下命令:$ awk '{ print }' test 您将会见到 test 文件的内容出现在眼前。现在,解释 awk 做了些什么。调用 awk 时,我们指定 test 作为输入文转载 2012-11-16 15:32:14 · 2971 阅读 · 0 评论 -
mount: RPC: Unable to receive; errno = No route to host
本来我的NFS是好好的,今晚突然不能用了,仇煞我也!怎么办?凉拌!通常当NFS不能正常使用时候会给出提示,一般给出一下几种:1)mount: 192.168.1.111:/opt failed, reason given by server: Permission denied查看配置文件exports,是否为允许挂载的客户。2)mount: RPC: Unable to rece原创 2012-10-22 12:26:00 · 3455 阅读 · 0 评论 -
虚拟机linux在崩溃的情况下取出其中的资料
最近很不幸的虚拟机突然不能用了,不能用无所谓,但是里面的资料咋办呢?大家都知道,安装在真实计算机上的linux有个救援模式,在虚拟机中我们也是可以使用的,经过笔者摸索,最终终于把资料给取出来了。下面介绍这一使用过程。 STEP1:打开WMware。 STEP2:设置光驱。按照下面图示进行设置。注意USE ISO image file:是你的linux镜像文件的原创 2012-10-31 15:35:50 · 3451 阅读 · 0 评论 -
虚拟机安装linux精讲
第一大步骤:虚拟机配置Step 1:选择 File-->newàvirtual machine 如下图: Step 2:选择 custom模式,如下图,然后点击 next. Step 3:选择虚拟机版本号,默认是6.5的,如下图,然后点击 next. Step 4:选择安装镜像文件,如下图,然后点击Next.Step转载 2012-10-31 14:41:49 · 804 阅读 · 0 评论 -
linux中设置PATH路径
在linux中设置PATH的路径总体来说有两种方法,临时型和长期型。具体来说应该有三种吧。下面介绍一.临时型,用这种方法设置的PATH路径,当系统注销后会消失。注册路径之前的PATH #export PATH=$PATH:mypath看。。是立刻生效的。当时当系统注销以后,会发现就没了,回到了第一张的图的情况。二、长期性。一直存在。 #vi /etc/pro原创 2012-10-26 19:22:48 · 2319 阅读 · 0 评论 -
fork()函数浅析
#include #include #include #include #include #include int main(){ int i=1; pid_t pid; int fd; int status; char *ch1="asd"; char *ch2="bnm"; char *ch3="opl"; fd=open("te原创 2012-11-07 17:02:13 · 582 阅读 · 0 评论 -
execlv()函数
#include #include #include #include int main(){ char *envp[]={"PATH=/tmp","USER=sunq",NULL}; pid_t pid; pid=fork(); if(pid==-1) { perror("fork"); exit(1); } else if(pid==原创 2012-11-07 20:02:31 · 997 阅读 · 0 评论 -
execlp()函数
#include #include #include #include int main(){ char *envp[]={"PATH=/tmp","USER=sunq",NULL}; pid_t pid; pid=fork(); if(pid==-1) { perror("fork"); exit(1); } else if(pid==原创 2012-11-07 20:09:00 · 891 阅读 · 0 评论 -
exit(),_exit()与return的比较与浅析
先说return与exit():首先我们应该很清楚的是return与exit()的根本性质是不同的,前者是对于子函数而言的,二后者是对于进程而言的。return是说子函数在遇到return时候,就不在往下执行,返回调用的函数中。而exit()是说遇到它本进程执行结束。1>对于在main函数的最后的return与exit()能完成相同的功能。显然,主函数退出进程也就结束了,所以在某种意义上说原创 2012-11-07 21:48:56 · 701 阅读 · 0 评论 -
execvp()函数
#include #include #include #include int main(){ char *envp[]={"PATH=/tmp","USER=sunq",NULL}; char *argv[]={"ls","-l","./",NULL}; pid_t pid; pid=fork(); if(pid==-1) { perror("f原创 2012-11-07 20:13:06 · 3582 阅读 · 0 评论 -
system()函数浅析
system function introduce://come from /usr/include/stdlib.hExecute the given line as a shell commandextern int system(__const char* __command)system以新进程方式运行一个程序,然后结束。system()函数用来创建新进程,并在此进程原创 2012-11-07 20:26:59 · 870 阅读 · 0 评论 -
GNU C中的零长度数组
在标准C和C++中,长度为0的数组是被禁止使用的。不过在GNU C中,存在一个非常奇怪的用法,那就是长度为0的数组,比如Array[0];很多人可能觉得不可思议,长度为0的数组是没有什么意义的,不过在这儿,它表示的完全是另外的一层意思,这个特性是不可移植的,所以,如果你致力于编写可移植,或者是稍稍需要跨平台的代码,这些Trick最好还是收起来的好。 在GNU的指南中,它是如此写道:转载 2012-11-28 15:27:36 · 7487 阅读 · 2 评论 -
ualarm()函数调用失败以及浅析
ualarm()函数浅析函数原型//come from /usr/include/unistd.hextern __useconds_t ualarm(__useconds_t __value,__useconds_t __interval)函数调用成功时,返回原alarm()函数剩余的微秒数,若不存在alarm()函数则返回0,出错的情况下返回-1;详细描述看man中的介绍。原创 2012-11-14 16:52:32 · 4246 阅读 · 1 评论 -
GNU C与ANSI C
Linux上使用的C编译器是GNU C编译器,其对标准的C(ansi c)进行了一定的扩展,这带来的影响是两方面的。一方面增强了其原来的没有的功能,另一方面却对要编写移植性要求较高的程序带来了一些问题。对于后一个问题,在编写程序时,建议是如果在ANSI C中也提供的同样的功能时,尽量使用ANSI C来实现,当然如果不考虑程序的移植性,比如说,我们就是要在一个产品上写一段代码,那就不需要考虑这些了,原创 2012-11-28 22:13:25 · 12816 阅读 · 0 评论 -
execl()函数
#include #include #include #include #include int main(){ pid_t pid; pid=fork(); if(pid==-1) { perror("fork"); exit(1); } else if(pid==0) { execl("/bin/ls","ls","-l",原创 2012-11-07 19:50:15 · 1029 阅读 · 0 评论 -
一个学习等待信号sigsuspend()很好的例子
#include #include #include #include #include void pr_mask(char *str){ sigset_t sigset01; int errno_save; errno_save=errno; if(sigprocmask(0,NULL,&sigset01)==-1) perror("provm原创 2012-11-15 22:00:32 · 977 阅读 · 0 评论 -
.infig.status: error: cannot find input file
这是因为configure.in的文件格式不对(是dos格式),用编辑器打开configure.in文件,将其重新保存为 unix格式。解决:1)在windows下转换:利用一些编辑器如UltraEdit或EditPlus等工具先将脚本编码转换,再放到Linux中执行。转换方式如下(UltraEdit):File-->Conversions-->DOS->UNIX即可。2)也可原创 2014-01-01 23:04:08 · 3318 阅读 · 0 评论