- 博客(55)
- 收藏
- 关注
原创 TCP并发服务器多线程
传出参数,线程创建成功之后,会被设置一个合适的值。主线程先退出,子线程会被强制结束。不能使用该函数打印错误信息。验证线程直接共享全局变量。
2024-07-22 22:03:25
493
原创 LINUX客户端client(socket、connect,write)实现客户端发送,服务器接收
然后在客户端发送数据,服务器接收数据。SERVICE端见前一篇文章。打开两个终端,先运行服务器。
2024-07-21 20:29:38
515
2
原创 LINUX服务器service的socket,bind, listen, accept, read
把给定系统所采用的字节序称为主机字节序,为了避免不同类别主机之间在数据交换时由于对于字。同时允许几路客户端和服务器进行正在连接的过程(正在三次握手),一般填。已经建立好连接的客户端链表(已经完成三次握手分配好了的。访问内存中的多字节数据时候,存在大小端的问题。节序的不同而导致的差错,引入了网络字节序。:指向存放地址信息的结构体的首地址。成功,返回返回已经建立连接的新的。正在三次握手的客户端链表(数量。:存放地址信息的结构体的大小。主机字节序到网络字节序。网络字节序到主机字节序。位的网络字节序二进制值。
2024-07-20 16:44:05
539
原创 进程控制-wait和waitpid进程回收
此时打开另一个终端,终止进程,返回终止进程(异常退出)的信号 9。如上宏为真,使用此宏,取得使进程种植的那个信号的编号。如上宏为真,使用此宏,获取进程退出状态的参数。返回WEXITSTATUS(status)获取子进程结束状态(退出原因)回收失败,已经没有子进程了。调用一次只能回收一个子进程。回收当前进程组的任一子进程。判断子进程如何退出状态。子进程的退出状态,用法同。阻塞并等待子进程退出。:回收失败,无子进程。
2024-07-06 23:46:22
339
原创 进程的控制-孤儿进程和僵尸进程
系统调用)没有读取到子进程退出的返回代码时就会产生僵尸进程。僵尸进程会以终止状态保持在进程表中,并且会一直等待父进程读取退出状态代码。一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。因为子进程sleep了两秒,此时父进程已经结束了,没有回收子进程。一个比较特殊的状态,当进程退出父进程(使用。进程结束之后,(能够释放用户区空间)进程对它们完成状态收集工作。是一个已经死掉了的进程。
2024-07-06 22:57:47
246
原创 进程控制-exec函数
指定执行目录下的程序 int execl(const char *path, const char *arg,/* (char *) NULL */);执行系统自带的程 序:/bin/xx */ ps aux。不使用进程原有的环境变量,设置新加载程序运行的环境变量。段,执行exec的内容,不执行之前的子进程的内容。执行另外的程序,不需要创建额外的的地址空间。要执行的程序需要的参数 第一位。环境变量能够搜索到的程序。如果函数运行成功不返回。一般执行自己写的程序。执行的命令名字 第一个。指定环境变量下的程序。
2024-07-06 22:38:07
550
原创 进程的控制-ps和kill命令
可将指定程序终止。若仍无法终止该程序,可使用 SIGKILL(9)信息尝试强制删除程序。程序或工作的编号可利用。使用ps aux | grep hello查看hello的进程序号。:当处理当前进程时,不限制命令名和进程号的对应关系;SIGKILL(或9)加上进程序号信息尝试强制删除程序。显示现行终端机下的所有程序,包括其他用户的程序。命令只打印相关进程的进程号,而不发送任何信号;可将指定的信息送至程序。以用户为主的格式来显示程序状况。参数会列出全部的信息名称;:指定要送出的信息;向指定的进程发送信号。
2024-07-06 22:01:53
347
原创 进程控制-fork函数
()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来的进程的值不同。相当于克隆了一个自己。()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。子进程创建成功之后,子进程的执行位置。父子进程的执行顺序 不一定。得到当前进程的父进程的。
2024-07-06 21:10:43
306
原创 Linux进程
处理的速度非常快,只要时间间隔处理得当,即可让用户感觉是多个应用程序同时在进行。把一个时间段划分成几个时间片段(时间区间),然后在这几个时间区间之间来回切换,由于CPU。多核的情况中,才会发生并行。否则,看似同时发生的事情,其实都是并发执行的。进程基本的状态有五种,分别为初始态,就绪态,运行态,挂起态和终止态。,指的是多个事情,在同一时间段内同时发生了。,指的是多个事情,在同一时间点上同时发生了。进程的状态,有就绪,运行,挂起,停止等状态。那么,就可以说听音乐和打游戏是并发的。)来维护进程相关的信息,
2024-07-06 20:58:26
230
原创 Linux动态库的制作
先sudo vi /etc/ld.so.conf 然后输入密码,在文本里面添加需要执行的main.c所在的目录 /home/lpych。在创建目标文件:lpych@lpych-virtual-machine:~$ gcc -c -o sub.o sub.c。2.动态函数库创建命令gcc -shared -fpic -o libsub.so sub.o。main.c和sub.c的文件内容可以参考上发表的上一个文章 Linux静态库的制作。目录下的动态函数库,而此时我们生成的库不在里边。:产生位置无关代码。
2024-07-03 22:41:21
511
原创 Linux的fwrite函数
首先从ll文件夹里面读取8个字节到readBuff,所以readBuff里面的内容为12345678。因为上次读完ll的8个字节后,光标位于8因此从8开始写入4个字节为12345678hell。然后将writeBuff里面的内容hello world写出4个字节到文件ll.是存放读入数据的起始地址(即存放何处)。cat ll命令为显示ll文件里面的内容。:指定写入的每个数据项的字节数,如调用。次,并将读入的数据存放到从buffer。指定写入的数据项的个数。次,并将输出的数据存放到。:指向 数据块的指针。
2024-06-29 21:52:42
804
原创 Linux的fread函数
用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初。编译demo2.c文件,编译完后命名为demo。,即由指针写入地址的数据大小,注意。从文件中读入数据到指定的地址中。:指定读取的每个数据项的字节数。对已打开的流进行数据读取。指定要读取的数据项的个数。第一个参数为接收数据的指针。,该指针指向文件内部数据。返回实际读取数据项的个数。:指向 数据块的指针。,即要读取的数据大小为。打开demo2.c文件。
2024-06-27 23:15:49
611
2
原创 Linux 标准IO的fopen和fclose
就可以把缓冲区内最后剩余的数据输出到磁盘文件中,并释放文件指针和有关的缓冲区。:附加方式打开可读写,不存在建立该文件,存在写入的数据加到文件尾,附加方式打开只写,不存在建立该文件,存在写入的数据加到文件尾,打开二进制文件,可读写,写的数据加在文件末尾。打开文本文件,可读写,写的数据加在文本末尾。成功,返回指向该文件的文件指针。:只读方式打开,文件必须存在。可读写,文件存在则文件长度清。只写,文件存在则文件长度清。,文件不存在则建立该文件。,文件不存在则建立该文件。:可读写,文件必须存在。
2024-06-25 22:35:43
542
原创 常用的Linux命令,linux下文件的读、写、打开、关闭append用法
每编译一次,cat一次,会在末尾append一次 hello world。
2024-06-03 22:27:26
384
1
原创 解决运行.exe文件时报错,找不到相关文件
解决运行.exe文件时的报错FileNotFoundError: [Errno 2] No such file or directory: project 1.inp3568 Failed to execute scriptread inp auto due to unhandled exception!
2024-05-31 11:11:56
604
原创 python在cmd中运行.exe文件时报错:不是内部或外部命令,也不是可运行的程序或批处理文件。的解决办法
在系统变量里面添加,【变量名:ComSpec】 【变量值:%SystemRoot%\system32\cmd.exe】添加【系统变量】 新建%SystemRoot%\system32\cmd.exe。点击【环境变量】添加【用户变量】【Path】【新建】打开【控制面板】点击【系统和安全】设置环境变量,在用户变量里面添加。打开【系统】选择【高级系统设置】然后一步步点击确认保存即可。
2024-05-31 10:58:18
803
原创 python 将多个.py文件打包成.exe可执行文件
pyinstaller read_inp_auto.py -p pingmainF.py打包两个 .py文件,如果有多个继续 -p ***.py。首先,在pycharm的terminal安装pyinstaller。在dist文件夹目录下。
2024-05-22 11:04:41
454
原创 python将三点坐标求解的单位平面法向量输出坐标转化为“,”逗号连接
用逗号连接,“,”.join("{:.4f}".format(num) for num in unit_normal_vector))用到了“,”.join()函数,函数内为数字的格式,4位浮点数输出,数字原先存在unit_normal_vector里。
2024-05-22 10:22:42
247
原创 python写出文件,下次运行时想要删除上次文件重新写入
并在写文件前先删除文件即可os.remove(r"文件名")只需要 import os。
2024-05-21 17:11:09
198
原创 亲测好用!!python读取一段文本指定内容之间的内容
方法:读取文档的每一行,读取想要提取内容前后行的index,输出index中间的所有行。'*NODE,NSET=NALL'开始。读取所有节点的坐标,并写入txt文档。
2024-05-17 19:58:42
433
原创 基于Python,由inp文档获取输入,实现自动化生成.wdf文件
【代码】基于Python,由inp文档获取输入,实现自动化生成.wdf文件。
2024-05-13 17:10:17
261
1
原创 用python读取txt文件中包含指定文字的行,并用txt输出所在行的指定文字
【代码】用python读取txt文件中包含指定文字的行,并用txt输出所在行的指定文字。
2024-05-10 11:38:21
409
原创 C语言利用指针和函数,实现两个功能,输入两个数a,b,按从大到小顺序输出;输入三个数a,b,c,按照从大到小顺序输出;
【代码】C语言利用指针和函数,实现两个功能,输入两个数a,b,按从大到小顺序输出;输入三个数a,b,c,按照从大到小顺序输出;
2024-04-27 10:48:09
272
原创 C语言用递归函数求一个数的阶乘
注意if(a==1||a==0)里面是==而非=,一个是判断,一个是赋值运算。注意如何通过scanf函数从键盘获取数据。
2024-04-23 22:22:19
306
原创 不用任何字符串函数,实现字符串函数连接功能
因为,puts()函数的功能是用于输出一个字符串,其中括号内的参数是输出字符串的起始地址,调用方式为puts(s);s为字符串字符(字符串数组名或者字符串指针);可以直接将字符串写入函数中,如puts("hello,world");注意,puts(p);而不是puts(*p);
2024-04-17 21:13:09
232
原创 字符指针和字符串
静态存储区,只有等程序结束了才会释放,一般,全局变量,static局部变量,字符串常量这三种存放在静态存储区。初始化字符指针是把内存中字符串的首地址赋予指针,并不是把该字符串复制到指针中。在C语言中,当一个字符指针指向一个字符串常量时,不能修改指针指向的对象的值。但是,strcpy(p,a)就不行。*p = 'h';
2024-04-16 22:29:25
218
原创 行指针(数组指针)及其运用
方括号中的常量表达式表示指针加1,移动几个数据;即指针加一,移动三个数据。当用行指针操作二维数组时,表达式一般写成1行的元素个数,即列数。用行指针表示二维数组的某个元素,并且遍历。存储行地址的指针变量,叫做行指针变量。例如 int (*p)[3];
2024-04-16 16:11:12
464
原创 strlen和sizeof计算字符的长度
注意,strlen遇到‘\0’时停止计算字符数组长度 ,只计算字符串结束符前面的长度。sizeof运算符会算上字符串结束符‘\0'占的长度。
2024-04-12 23:18:40
138
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人