Linux C
文章平均质量分 77
Linux 中的C语言包括进程线程等等
☞ ♚ ☜
这个作者很懒,什么都没留下…
展开
-
当循环输入遇到EOF
一. 写出下面代码输出结果,并解释原因。#include <stdio.h>int main(int argc, char *argv[]){ int val_1 = -42; int val_2 = val_1 >> 10; printf("%d\n%d\n", val_1, val_2); unsigned int a = 42; unsigned int b = a >> 10; printf("%u\n%u原创 2021-12-14 22:10:28 · 1591 阅读 · 0 评论 -
聊天室项目文档
聊天室项目文档项目简述项目需求功能展示使用准备更改端口和IPmysql 中使用的表需要提前准备的mysql tables程序自动创建的mysql tables项目简述实现Linux环境下的简易聊天室,采用C/S模型,实现多客户端之间的稳定数据传输。可参考QQ、微信功能。聊天室项目源码聊天室项目分析聊天室项目文档项目需求1.账号管理登录、注册找回密码2.好友管理私聊(实时性)好友的添加、删除、查询查看好友列表显示好友状态(在线与否)查看聊天记录屏蔽好友消息3.群管原创 2021-08-07 17:48:09 · 612 阅读 · 0 评论 -
聊天室项目分析
聊天室项目分析项目介绍服务器架构项目介绍聊天室项目是实验室为了让我们能够更好的掌握linux下网络编程的知识的任务,也同样让我们感受到用自己所学的知识做出一些东西时的喜悦。在只有需求的背景下也极为考验对整体架构构建能力,如果不能看清全局,那就只能推到重来。服务器架构服务器要想有稳定且高效的性能就要有好的架构,epoll是IO复用中不错的方式,但仅仅使用epoll并不是最高效的,当然我实现的也并不是最高效的。...原创 2021-08-07 17:45:15 · 529 阅读 · 1 评论 -
聊天室项目源码
聊天室项目源码聊天室服务器ser.hser.cserver.c客户端cli.hcli.cclient.c聊天室在linux下使用C语言开发的一款简单的聊天程序。服务器ser.h#include <stdio.h>#include <stdlib.h>#include <string.h>#include <mariadb/mysql.h>#include <sys/types.h>#include <sys/socket.原创 2021-08-07 17:44:05 · 285 阅读 · 1 评论 -
Linux C 网络编程(select 与 poll)
Linux C 网络编程功能selectselect介绍select应用pollpoll介绍功能有了套接字我们便可以在客户端和服务器之间传递信息,由send和recv函数来发送和接收文件,而我们不能提前知道客户端或服务器什么时候发送信息,如果客户端比较多,还要判断是哪一个客户端发来的信息。这让我们需要类似于监听套接字一样的功能(有连接就返回),select, poll, epoll都提供了这些功能,当有信息发送就返回有信息的套接字描述符,然后用recv接收信息。selectselect介绍在客户端原创 2021-07-30 21:14:27 · 302 阅读 · 0 评论 -
Linux C 网络编程(socket 套接字)
Linux C 网络编程功能套接字功能前面我们学习了系统编程,通过管道等我们可以将一个系统中的资源和信息调用起来,但这是远远不够的,我们还可以通过网络编程和其他的的系统来交互信息。为了相互通信,国际制定了TCP/IP协议,通过IP地址和端口好进行通信。套接字...原创 2021-07-28 21:38:13 · 804 阅读 · 0 评论 -
Linux C哲学家吃饭问题
哲学家吃饭问题哲学家问题线程中的信号量无名信号量的定义:P操作:使信号量-1V操作:使信号量+1正常代码(可能发生死锁现象)解法1解法2哲学家问题有五个哲学家绕着圆桌坐,每个哲学家面前有一盘面,两人之间有一支筷子,这样每个哲学家左右各有一支筷子。哲学家有2个状态,思考或者拿起筷子吃饭。如果哲学家拿到一只筷子,不能吃饭,直到拿到2只才能吃饭,并且一次只能拿起身边的一支筷子。一旦拿起便不会放下筷子直到把饭吃完,此时才把这双筷子放回原处。如果,很不幸地,每个哲学家拿起他或她左边的筷子,那么就没有人可以吃到饭了原创 2021-05-24 22:23:38 · 1034 阅读 · 1 评论 -
Linux C生产者和消费者(线程)
生产者和消费者生产者消费者问题实现目标原理代码生产者消费者问题生产者消费者共享缓冲区,生产者向缓冲区中放数据,消费者从缓冲取中取数据,当缓冲区中被放满时,生产者进程就必须进入挂起状态,直到消费者从缓冲中取走数据时,生产者才能继续向缓冲区中存放数据,同样当缓冲取中没有数据时,消费者进程就必须进入挂起休眠状态,直到生产者向缓冲区中放入数据时,消费者才能被唤醒继续从缓冲区中取走数据。生产者消费者问题,也称有限缓冲问题,是一个多线程同步问题的经典案例。实现目标单生产者,单消费者多生产者,多消费者原理原创 2021-05-24 21:51:41 · 572 阅读 · 0 评论 -
LinuxC编程进程间的通信总结
LinuxC编程进程间的通信总结前言管道有名管道本文参考《LinuxC编程实战》前言进程的空间地址是各自独立的,因此进程间进行数据交流就需要特定的通信机制,在大型应用中往往需要多个进程同时工作,这就需要进程间的数据交流和配合。进程间的通信方式有:管道(pipe):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程间的亲缘关系一般指父子进程关系。有名管道(named pipe):有名管道也是半双工管道通信方式,但是它允许不具有亲缘关系的进程间的通信。信号量(原创 2021-05-16 21:26:25 · 279 阅读 · 0 评论 -
LinuxC编程实战信号详细总结
LinuxC编程实战信号总结信号的来源信号的种类1.可靠信号和不可靠信号2.信号的优先级信号的捕捉和处理信号处理函数的返回本文参考《LinuxC编程实战信号的来源信号来源按产生体哦啊间的不同分为硬件和软件两种方式。1.硬件方式:1). 用户按下某些键所产生的信号。如<ctrl + C>组合键产生一个SIGINT信号。2). 硬件异常产生的一些信号。2.软件方式:1). 用户在终端下用kill命令向进程发送任意信号;2). 进程调用kill 或 sigqueue 函数发送信号;原创 2021-05-11 17:33:00 · 303 阅读 · 0 评论 -
Linux中make和makefile简单讲解(实例)
make和makedile简单讲解make的作用make的使用makefile文件make的作用make的使用makefile文件原创 2021-05-07 16:42:39 · 323 阅读 · 0 评论 -
鸟哥第八章文件压缩,打包备份总结
文件压缩,打包,备份(本文参考《鸟哥》)压缩文件扩展名gzip,zcat/zmore/zless/zgrepbzip2,bzcat/bzmore/bzless/bzgrepxz, xzcat/xzmore/xzless/xzgrep打包指令:tarXFS 文件系统的备份和还原压缩文件扩展名文件扩展名含义* .zcompress 程序压缩的文件* .zipzip 程序压缩的文件* .gzgzip 程序压缩的文件* .bz2bzip2 程序压缩的文件*原创 2021-04-26 20:02:04 · 209 阅读 · 0 评论 -
myshell中readline的使用
myshell中readline的使用readline.htab补全readline.hreadline.h这个库需要大家自己安装,他有许多功能这里也只是一些皮毛,下面是下载readline库的地方,下载后你需要将它解压到include目录中。由于readline是一个动态库,编译的时候需要加上 -lreadline,不然会找不到相关的函数。readlinetab补全tab补全需要使用readline这个函数,该函数的原型为:char *readline(const char *prompt);原创 2021-04-16 20:50:36 · 742 阅读 · 0 评论 -
Linux C编程my_shell的实现
Linux C编程my_shell的实现功能流程图完整代码命令功能1.普通命令2.重定向符3.管道符实现普通命令功能支持的命令:单个命令,如:ls 。带一到多个参数的命令,如:ls -l。带一个输出重定向的命令,如:ls > text带一个输入重定向的命令,如:wc < text带一个管道的命令,如 :ls -l |wc -c后台运行符&加在以上各个命令后面如:ls &如:ls -l &输入exit或logout退出myshell错误处理:原创 2021-03-24 20:17:48 · 1209 阅读 · 3 评论 -
Linux C命令编写(my_chmod的实现)
Linux C命令编写原创 2021-03-03 16:38:25 · 434 阅读 · 0 评论 -
西邮Linux兴趣小组面试题总结(2020)
面试题总结宏定义功能语法背景background:颜色 图片 平铺方式 固定方式 位置背景颜色background-color:#ccc;背景图像background-image:url(背景图像的位置及全称)背景图像的重复方式background-repeat:[repeat、no-repeat、repeat-x、repeat-y]背景图像的位置background-position:top[left center right]center[lef原创 2021-02-27 15:24:15 · 413 阅读 · 2 评论 -
GDB简单讲解
GDB的作用gdb是一款调试工具在 Windows 操作系统中,使用的大多是集成的开发环境(IDE),也就是说软件开发工具中已经包含了调试工具,例如 VC、BCB、Dev-C++ 等,这些软件中都集成了调试器。在 Linux 操作系统中,编译程序使用GCC(GCC 编译器的功能非常的强大,几乎可以编译所有的编程语言),集成的开发环境相对较少,但可以使用的调试工具有很多,例如 GDB、binutil、strace 等,最常用的调试工具是 GDB。GDB的安装(linux 终端下)(1)原创 2021-02-03 18:19:01 · 298 阅读 · 0 评论 -
Git简单讲解
push代码的时候,别人已经更新代码error: 您尚未结束您的合并(存在 MERGE_HEAD)。提示:请在合并前先提交您的修改。fatal: 因为存在未完成的合并而退出。解决办法git merge --abortgit reset --merge...原创 2021-02-24 17:55:39 · 85 阅读 · 0 评论 -
Linux C编程my_ls 的实现
Linux C编程my_ls 的实现功能参数: -a -l -R -t -r -i -s-R需要实现对根目录的查询需要实现各种参数的随意组合在所有目录下都可使用自己的my_ls界面美观( 输出对齐等)能屏蔽Ctrl+c杀死程序按照文件类型以及权限的不同分颜色输出流程图代码github参数输入及处理...原创 2021-03-14 21:03:47 · 3139 阅读 · 11 评论