
Linux编程
文章平均质量分 80
stone8761
这个作者很懒,什么都没留下…
展开
-
Linux下检测网卡与网线的连接状态
在机顶盒的网络连接中,其中有一项就是检测网卡与网线是否连接,当没有连接网线时,通过浏览器打开错误页面提示网线未连接。那么如何检测网卡与网线是否连接。一、使用ioctl向socket发送SIOCETHTOOL命令字[cpp] view plaincopy"font-size:18px;">#include #include #include #inclu转载 2014-05-09 16:08:26 · 2968 阅读 · 0 评论 -
Linux网络编程:基于TCP的程序开发
先上一个例子server:#include #include #include #include #include #include #include #include #include #include /* * tcp_server 8888 */intmain(int argc, char **argv){ int skfd, cnfd; stru原创 2014-07-10 12:08:21 · 780 阅读 · 0 评论 -
Linux网络编程:基于UDP的程序开发
Linux网络编程:基于UDP的程序开发回顾篇2012-07-1623:43:10 分类: LINUX基于无连接的UDP程序设计 同样,在开发基于UDP的应用程序时,其主要流程如下: 对于面向无连接的UDP应用程序在开发过程中服务端和客户端的操作流程基本差不多。对比面向连接的TCP程序,服务端少了listen和accept函数。前面我们也说过list原创 2014-07-10 12:07:01 · 685 阅读 · 0 评论 -
popen 使用方法
popen()可以执行shell命令,并读取此命令的返回值; popen()函数通过创建一个管道,调用fork()产生一个子进程,执行一个shell以运行命令来开启一个进程。可以通过这个管道执行标准输入输出操作。这个管道必须由pclose()函数关闭,必须由pclose()函数关闭,必须由pclose()函数关闭,而不是fclose()函数(若使用fclose则会产生僵尸进程)。p原创 2017-08-23 09:41:21 · 61880 阅读 · 3 评论 -
linux下编写一个简单的线程
linux下线程相关处理函数如下:-----创建线程int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);thread:若创建成功则保存被创建线程的线程句柄;attr:线程属性;sta...原创 2018-04-26 22:53:35 · 979 阅读 · 0 评论 -
iniparser 库使用
iniparser介绍 iniparser是一个C语言库,是针对INI文件的开源解析器。ini文件则是一些系统或者软件的配置文件。git地址如下: https://github.com/ndevilla/iniparser ini文件格式 iniparser提供API接口对ini文件进行解析、配置、删除等操作。ini文件基本格式如下所示:;地址池[ipad...原创 2018-07-18 17:05:38 · 10781 阅读 · 3 评论 -
使用socket tcp实现简单的文件传输
程序分为server、client两个部分,client从server获取文件。流程如下:server:1、创建socket,绑定端口10002,等待client连接;2、链接后打开需要发送的文件,计算文件长度并发送长度,等待接收客户端响应;3、客户端响应ok后,发送文件数据,发送缓冲定位8192;4、发送结束后关闭链接;client:1、创建socket,链接server;2、接收文件长度,并回...原创 2018-07-13 10:33:32 · 31932 阅读 · 15 评论 -
广播包发送
默认系统是禁止发送广播包的,需要设置SOL_SOCKET选项来打开广播包发送。这主要是为了防止一些程序并不是设计用来发送广播消息,因为用户的错误输入,而发送了广播消息。比如一个UDP 程序接受一个目标IP地址做为命令行参数,但用户却把这个地址写成了一个广播地址,这时候这个选项的作用就体现出来了,与其让这个UDP程序检验用户输入的是不是个广播地址不如让内核来检测,如果是一个广播地址,但...原创 2018-08-14 10:12:56 · 2709 阅读 · 0 评论 -
Linux 下setitimer函数的使用
在编程的时候,很多时候会用到定时器,定时检测某个状态是否发生变化并进行处理。这时候,就会用到setitimer函数了。1. 要使用setitimer函数,要包含头文件:#include 2. 该函数的原型是:int setitimer(int which, const struct itimerval *new_value, struct itimerval *old_value);3转载 2014-07-10 17:06:35 · 640 阅读 · 0 评论 -
ioctl函数
UNIX中的相关介绍ioctl函数ioctl函数是I/O操作的杂物箱。不能用本章中其他函数表示的I/O操作通常都能用ioctl表示。终端I/O是ioctl的最大使用方面(第18章将介绍POSIX.1已经用一些新函数代替ioctl 进行终端I/O操作)。 ioctl函数只是Single UNIX Specification标准的一个扩展,以便处理STREAMS设备[Rago 1993转载 2014-04-26 11:25:28 · 1041 阅读 · 1 评论 -
说说守护进程 转自 华清远见培训中心
说说守护进程 作者:曹忠明,华清远见嵌入式学院讲师。守护进程又称精灵进程(daemon),一般在系统启动时开始,而在系统关闭时终止。没有控制终端,运行在后台。在linux系统中有很多这类进程。下面说一下如何创建一个守护进程。(1) 使用umask修改文件的屏蔽字,为文件赋予跟多的权限,因为继承来的文件可能某些权限被屏蔽,从而失去某些功能,如读写。 (2)转载 2014-05-13 16:59:34 · 805 阅读 · 0 评论 -
串口编程说明
串口操作采用 UNIX 类似的方式,打开/关闭/发送/接收等基本操作采用类似文件系统的方式进行,而一些属性的设置和控制则使用 termios 来进行。串口对应的设备文件名为”/dev/ttyS0” 。1. 打开串口fd = open(“/dev/ttyS0”, O_RDWR);如果只发送数据,可以使用 O_WRONLY, 如果只接收数据,可以设置成 O_RDON转载 2014-05-13 09:09:09 · 784 阅读 · 0 评论 -
Linux多线程同步机制
一、互斥锁尽管在Posix Thread中同样可以使用IPC的信号量机制来实现互斥锁mutex功能,但显然semphore的功能过于强大了,在Posix Thread中定义了另外一套专门用于线程同步的mutex函数。1. 创建和销毁 有两种方法创建互斥锁,静态方式和动态方式。 POSIX定义了一个宏PTHREAD_MUTEX_INITIALIZER来静态初始化互斥锁,方法如转载 2014-07-10 16:10:17 · 538 阅读 · 0 评论 -
free函数在操作系统内存中的实现
free函数在操作系统内存中的实现2012-10-15 14:34:37 我来说两句 作者:gaoxin1076收藏 我要投稿我一次性malloc十个单位节点的内存空间出来赋值给L, 现在我想一次性删除从第3个到第6个节点,我是这么做的:1.将第六个节点的next指针指向NULL2.将L指针指向第三个单位空间的地址,再free(L)。等到把代码写完之后转载 2014-07-24 10:10:34 · 723 阅读 · 0 评论 -
Linux环境下网络编程杂谈
今天我们说说“Pre-网络编程”。内容比较杂,但都是在做网络应用程序开发过程中经常要遇到的问题。 一、大端、小端和网络字节序小端字节序:little-endian,将低字节存放在内存的起始地址;大端字节序:big-endian,将高字节存放在内存的其实地址。 例如,数字index=0x11223344,在大小端字节序方式下其存储形式为:上图一目了然的可以看出大转载 2014-07-10 12:11:09 · 481 阅读 · 0 评论 -
【libcjson 库使用与例程】
JSON 是一种轻量级的数据交换格式。它采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。 在C语言中一般使用libcjson库进行json数据的解析与创建,下面会使用两个例程分别介绍如何解析和创建json数据。备注:手动创建json数据...原创 2019-07-12 17:29:42 · 2243 阅读 · 1 评论