1.新建工作空间 2.新建c程序 3.编译 会多出一个a.out 4.执行 这里需要说明的是,需要安装gcc和vim。一个是编译器,一个是编辑器。
原创
2021-08-05 16:13:25
71阅读
指针实现变量交换值 让我们用gdb工具来看看其中的奥妙。 生成gdb调试版本的main.out文件。 进入调试模式 l 进行查看 start 开始执行 n 下一步 s 进入子函数 p 打印值。经过交换之后,a变成了3 ,b变成了5。 q退出。 通过gdb可以一步一步的查看程序的执行情况,看到内存的值
原创
2021-08-05 16:11:38
323阅读
多文件使用,一起编译 定义max.h 定义max.c 定义主c文件 编译执行! 查看 分别编译 头文件的好处,一次编译,多次使用。 只需要引入声明就可以了。 没有声明,会报错。 将注释的去掉就可以了。 单个编译max.c,min.c 编译成max.o和min.o之后,计算机就能够识别了。 以后可以在
原创
2021-08-05 16:11:46
149阅读
库的创建和使用
1.Linux库的概念 库是一种软件组建技术,库里面封装了数据和函数,提供给用户程序调用。库的使用可以使程序模块化,提高程序的编译速度,实现代码重用,使程序易于升级。 Windows系统本身提供并使用了大量的库,包括 静态链接库(.lib文件)和动态链接库(.dll文件)。类似的,Linux操作系统也使用库。Linux系统中,通常把库文件存放在/usr/lib或/lib目录下。
Linux创建多个用户,并赋予随机密码,要求不使用循环语句。方法一使用基本命令useradd和passwd添加用户和添加密码。(注:RANDOM随机生成数字(3-5个不等)。)创建一个用户[[email protected] ~]# useradd stu01创建多个用户就是要重复上面的命令多次,但是一个一个输入会比较麻烦,但是我们可以先生成一串序列,然后使用替换的方法将序列替换成上面的格式。然后
相信随着Linux的普及,大家都在写不少Linux下的程序了,尤其是一些服务端程序慢慢地都转到Linux下了吧。大家必然碰到问题是如何让自己的进程成为守护进程,在系统启动的时候运行,并且永远是后台进程。下面就写一个这样的程序了。源代码如下: //init_daemon.c 开始///
#include
#include
#include
#include
#inclu
通过管道,让小程序更有活力 一个负责输入,一个负责统计平均值 avg.c input.c 分开用! 结合起来用!
原创
2021-08-05 16:11:40
88阅读
在Linux下编程发现一个诡异的现象,就是在链接一个静态库的时候总是报错,类似下面这样的错误:
(.text+0x13): undefined reference to `func'
关于undefined reference这样的问题,大家其实经常会遇到,在此,我以详细地示例给出常见错误的各种原因以及解决方法,希望对初学者有所帮助。
1. 链接时缺失了相关目标文件(.o)
转载
2024-10-18 19:18:53
16阅读
进程创建后,进程进入就绪态,当CPU调度到此进程时进入运行态,当时间片用完时,此进程会进入就绪态,如果此进程正在执行一些IO操作(阻塞操作)会进入阻塞态,完成IO操作(阻塞结束)后又可进入就绪态,等待CPU的调度,当进程运行结束即进入结束态。练习:通过父子进程完成对文件的拷贝(cp),父进程从文件开始到文件的一半开始拷贝,子进程
原创
2023-08-13 01:24:18
130阅读
目录linux网络编程基础知识协议分层模型结构数据封装以太网帧和ARP请求IP协议传输层协议CS和BS模型 linux网络编程基础知识协议一组规则。数据传输和数据的解释的规则。TCP、IP、UDP、ARP、MQTT、HTTP、Modbus协议等等TCP协议注重数据的传输。http协议着重于数据的解释。传输层 常见协议有TCP/UDP协议。 应用层 常见的协议有HTTP协议,FTP协议。 网络层
在生成动态库时,常常习惯性的加上fPIC选项,fPIC有什么作用和意义,加不加有什么区别,这里做下小结:fPIC的全称是 Position Independent Code, 用于生成位置无关代码。什么是位置无关代码,个人理解是代码无绝对跳转,跳转都为相对跳转。1、不加fPIC选项即使不加fPIC也可以生成.so文件,但是对于源文件有要求,例如因为不加fPIC编译的so必须要在加载到用户程序的地址
在C语言的标准IO库中的库函数,
原创
2023-06-10 00:43:08
98阅读
文章目录1、参考文章:C++网络通信中write和read的为什么会阻塞[2、参考文章:网络编程(24)—— linux中write和read函数的阻塞试验]找write非阻塞代码123我的代码10 一开始我写了个这样的非阻塞write代码1 去掉循环write 1、参考文章:C++网络通信中write和read的为什么会阻塞
现在要搞明白,如何让调用write()函数的时候,先让它去判断发送缓
功能:从stream文件流读取nmenb个数据项存放至ptr所指的
原创
2023-06-10 00:43:09
91阅读
问题描述:采用UDP协议广播传输文件。所谓UDP协议是面向无连接的,不可靠的,工作于传输层的一种协议。这里补充讲解下ISO七层网络模型。常见的ISO七层网络模型基本可以由下图进行概括说明:对于TCP/IP模型则将7层重新归类为4类。应用层:TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等 传输层:TCP,UDP 网络层:IP,ICMP,OSPF,EIGRP,IGMP 数据
转载
2024-10-15 16:54:04
37阅读
目录一、查询文件信息1、stat2、stat fstat lstat区别二、目录操作2.1 opendir2.2 readdir2.3 closedir例练习:实现ls操作三、库3.1 库的定义3.2 库的分类3.2.1 静态库3.2.2 动态库3.3 创建库3.3.1 静态库制作3.3.2 动态库制作 一、查询文件信息1、statint stat(const char *path, struc
原创
精选
2023-06-17 09:12:30
331阅读
## Linux 下查看 Python 是否安装
在 Linux 系统中,Python 是一种非常常用的编程语言。如果你要开发 Python 程序或者运行 Python 脚本,需要先确保 Python 已经被正确地安装在你的系统中。本文将介绍如何在 Linux 系统中查看是否安装了 Python。
### 使用命令行查看 Python 版本
在 Linux 中,可以通过命令行来查看系统中是否
原创
2023-11-14 07:58:45
57阅读
对消息队列的操作无非有下面三种类型:1、 打开或创建消息队列消息队列的内核持续性要求每个消息队列都在系统范围内对应唯一的键值,所以,要获得一个消息队列的描述字,只需提供该消息队列的键值即可;注:消息队列描述字是由在系统范围内唯一的键值生成的,而键值可以看作对应系统内的一条路经。2、 读写操作消息读写操作非常简单,对开发人员来说,每个消息都类似如下的数据结构: struct msgbuf{
long
linux c基础(共21集):http://www.21edu8.com/pcnet/programming/29943/show.html?29943-0-0
转载
精选
2013-07-19 16:33:24
865阅读
4评论
little-endian小端模式的机子上测试
原创
2022-11-25 11:28:55
161阅读