Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器 软件资源

软件开发小程序制作系统集成与运维空间租用硬件开发视频监控技术咨询与支持——联系电话:0311-88999002/88999003

首页 / 操作系统 / Linux

Linux下发送网络数据0d0a的问题

Linux下发送网络数据0d0a的问题

因为Window和Linux的回车编码不一样,Windows的回车换行编码是0x0d 0x0a两个字节,而Linux的编码只有一个字节0x0a,所以在Linux发0x0a出去到Windows下接收就会变成0x0d 0x0a,这种自作聪明的转换是很令人讨厌的!当你传输的是二进制数据时,接收到的文件就无法使用了。这个应该是串口的参数设置问题,网上有C写的串口操作程序就可以设置,原因是在串口设置中c_iflag和c_oflag中存在从NL-CR 和CR-NL的映...
Linux模块的一点事情

Linux模块的一点事情

1.Linux有个内核符号表,内核符号表包含所有全局的函数和变量,加载模块的时候用来解析“未定义”的符号,加载完成后模块导出的函数和变量则添加到内核符号表中供别人使用,这样是不是意味着,在模块中使用别的模块的函数只要声明就可以了,如果内核符号表中没有就依次路径搜索别的模块中是否有,并加载。2.应用程序应该不可以这样做,因为首先它们不在同一个空间里,应用空间怎么可以直接访问系统空间呢?这还得了!!这个可是系统调用干的事情,应该设计成系统调用才可以吧!3.in...
Linux休眠的问题

Linux休眠的问题

TASK_INTERRUPTIBLE 和TASK_UNINTERRUPTIBLE 的区别TASK_INTERRUPTIBLE是可以被信号和wake_up()唤醒的,当信号到来时,进程会被设置为可运行。而TASK_UNINTERRUPTIBLE只能被wake_up()唤醒。信号是在软件层次上对中断机制的一种模拟,信号事件的发生有两个来源:硬件来源:(比如我们按下了键盘或者其它硬件故障);软件来源:最常用发送信号的系统函数是kill, raise, alarm...
Linux进程和内核地址空间

Linux进程和内核地址空间

一、 Linux采用了虚拟内存管理技术,使得每个进程都有独立的进程地址空间,该空间是大小为3G,用户看到和接触到的都是虚拟地址。利用这虚拟地址,不但能保护操作系itongde作用,更重要的是用户程序可使用比实际物理地址内存更大的地址空间。二、inux将4G的虚拟地址空间划分为2部分---用户空间与内核空间用户空间从0到0xbfffffff,内核空间从3G到4G,用户进程通常情况下只能访问用户空间的虚拟地址,不能访问啮合空间。例外请款情况是用户进程通过系统调...
Linux串口设置及编程

Linux串口设置及编程

用户常见的数据通信的基本方式可分为并行通信和串行通信。并行通信是指利用多条数据传输线将一个资料的各位同时传送。特点是传输速度快,适用于短距离通信,但要求传输速度较高的应用场合。串行通信是指利用一条传输线将资料一位位的顺序传送。特点是通信线路简单,利用简单的线缆就可以实现通信,减低成本,适用于远距离通信,但传输速度慢的应用场合。常用的串口有RS-232-C接口(全称是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”)。UA...
Makefile学习教程: 跟我一起写 Makefile

Makefile学习教程: 跟我一起写 Makefile

0 Makefile概述 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefile,从一个侧面说明了一个人是否具备完成大型...
阐述Linux动态库的显式调用

阐述Linux动态库的显式调用

十年的发展,Linux系统已经赶上了微软,于是很多人开始学习Linux时,学习Linux,你可能会遇到动态库的显式调用,这里将介绍动态库的显式调用的解决方法,在这里拿出来和大家介绍下。显式调用的含义是代码出现库文件名,用户需要自己去打开和管理库文件。其要点为:⑴把dlfcn.h系统头文件包含进来⑵用dlopen函数打开库文件,并指定打开方式dllope的的第一个参数为共享库的名称,将会在下面位置查找指定的共享库。①环境变量LD_LIBRARY_PATH列出...
跨平台(WIndows, Linux, VxWorks) getTickCount实现

跨平台(WIndows, Linux, VxWorks) getTickCount实现

在c/c++代码中,有时需要实现计时功能,比如某个时刻开始计时,然后到另一时刻时,计算距开始计时的时刻毫秒数。通过在起始时刻和停止时刻分别调用下面的代码,返回的时间相减,便可获得这段时间的毫秒数,其跨Windows、Linux、VxWorks三个平台。#ifdef WIN32#define OS_WINDOWS WIN32#include <windows.h>#endif#ifdef LINUX#include <unistd.h>...
如何用C语言获取文件的大小

如何用C语言获取文件的大小

今天看项目的代码过程中发现在linux下获取一个指定文件大小(字节为单位)的代码。查了一下发现是使用系统调用stat来实现,而这引起了我的兴趣,我发现在window下貌似没有提供这样的系统调用(不包括MFC),那么如何使用C语言或C++语言来写一个通用的函数来获取指定文件大小的函数呢?查了一下发现同C语言的文件操作函数便可以很容易的实现这样的功能。在自己实现的函数中使用到的函数就只有fseek和ftell。它们的说明如下:fseek语法:#include ...
Linux fork函数创建一个新进程

Linux fork函数创建一个新进程

在Linux中创建一个新进程的唯一方法是使用fork函数,fork()执行一次但有两个返回值。在父进程中,返回值是子进程的进程号;在子进程中,返回值为0。因此可通过返回值来判断当前进程是父进程还是子进程。使用fork函数得到的子进程是父进程的一个复制品,它从父进程处复制了整个进程的地址空间,包括进程上下文,进程堆栈,内存信息,打开的文件描述符,信号控制设定,进程优先级,进程组号,当前工作目录,根目录,资源限制,控制终端等。而子进程所独有的只是它的进程号,资...
<< 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 >>