文件IO-操作函数(3)
使用Linux内核提供的函数对文件进行操作
打开文件
//头文件
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
//函数原型
//返回值:返回一个文件描述符,如果打开成功返回非负整数,失败返回-1
//flag:O_RDONLY(只读)、O_WRONLY(只写)、O_RDWR(可读可写)三选一
int open(const char *pathname,int fla ...
网络协议基本概念-TCP通信代码案例
特性
TCP
UDP
面向连接
无连接
可靠(确保数据完整、按顺序到达)
不可靠(数据可能丢失、无序)
较慢(有连接和确认开销)
较快(无连接和确认开销)
字节流(无边界)
数据报(有明确边界)
文件传输、网页浏览、邮件传输等
实时通信、在线游戏、DNS 查询等
通俗的解释
TCP:你打电话给朋友,先 ...
MAUI之Android及Windows跨平台开发之初体验
项目文件
点击此处下载 源代码
注:
本项目使用VS2022开发环境、.NET9框架
Android框架:
最小框架:Android9.0(API Level 28 - Pie)
目标框架:Android15.0(API Level 35)
Windows框架:
最小框架:10.0.17763.0
目标框架:10.0.19041.0
如无法编译等情况出现,请确保VS2022是最新的且MAUI工作负载等环境已安装
VS2022在 ...
使用C#代码配置NLog Asp.Net Core
在Asp.Net Core项目中,日志记录是至关重要的一环,它能帮助我们在开发和生产环境中快速定位问题。NLog是一个功能强大且灵活的日志记录框架,在Asp.Net Core项目中广泛应用。通常,我们可以通过配置文件来设置NLog,但有时,使用代码进行配置能带来更多的灵活性和动态性。本文将详细介绍如何在Asp.Net Core项目中使用C#代码 ...
记一次 .NET某固高运动卡测试 卡慢分析
一:背景
1. 讲故事
年前有位朋友找到我,说他们的程序会偶发性卡慢 10s 钟,在某些组合下会正常,某些组合下就会出现问题,解释不了其中的原因,让我帮忙看下怎么回事?截图如下:
private void TestRun()
{
int encposUpy = 0;
Logger Log = new Logger();
Task.Factory.StartNew(delegate
{
Log.Info("GTN_GetEc ...
Avalonia跨平台实战(三),自定义控件之Camera控件
上文讲到Avalonia中比较多的便利性,今天我们来讲一下自定义控件
研究了个把礼拜Avalonia,发现生态并不是很完善
首先是国内.NET人数少,且市场占有率也低,导致Avalonia相关的文档和教学视频也少
其次是对于Avalonia这个新事务来讲,控件库不完善,虽然官方提供了很多控件库,也有其他一些控件库,但是还是有很多控件没 ...
WPF引用外部资源(样式、文件等)方式
具体代码请下载 项目文件
注:本项目使用VS2022开发环境、.NET8框架及MahApps.Metro界面UI。
摘取关键代码如下:
<StackPanel Grid.Row="0">
<!-- *********************************************************************** -->
<!-- 【1】当1.jpg为当前程序集WpfTest2中的资源时(嵌 ...
使用RabbitMQ实现消息队列---C#为例
标题
1.消息队列介绍
其实消息队列没有那么神秘,我们这样想一下,用户访问网站,最终是要将数据以HTTP的协议的方式,通过网络传输到主机的某个端口上的。
那么,接收数据的方式是什么呢?自然是端口监听啦。
那消息队列是什么就很好解释了?
它就是端口监听,接到数据后,将数据排列起来。
那这件事,我们不用中间件能做吗 ...
Deepseek的几款好看的交互界面
1.Page Assist 浏览器插件
1.1 开源地址
https://github.com/n4ze3m/page-assist
1.2 下载安装
可以到GitHub 下载
插件支持主流浏览器,edge、chrome、firefox
https://github.com/n4ze3m/page-assist/releases
可以到谷歌插件市场下载安装(需要魔法上网)
上面两种方法都下载不了的小伙伴到如下地址下载
https://www.cr ...
.NET 阻止Windows关机以及阻止失败的一些原因
本文主要介绍Windows在关闭时,如何正确、可靠的阻止系统关机以及关机前执行相应业务
Windows关机,默认会给应用几s的关闭时间,但有一些场景需要在关机/重启前执行更长时间的业务逻辑,确保下次开机时数据的一致性以及可靠性。我司目前业务也用到关机阻止,但这块之前并未梳理清楚,依赖BUG编程,导致后续维护项目时关机这 ...
本地部署deepseek,并投喂数据
话说回来了,为啥要本地部署呢?
① 在使用DeepSeek中,经常会出现服务器繁忙,请稍后再试。
② 不想让个人隐私数据暴露出去
③ 可将各种格式的文件,如pdf、csv、txt、md 格式的数据投喂给它。比如你想让 DeepSeek 了解你的公司业务,就把相关的文档上传给它。
DeepSeek 就能吃下你给它的各种“知识大餐”,然后变得更聪明 ...
DeepSeek本地部署+Page Assist浏览器插件+C#接口调用
1.安装Ollama
Ollama作为本地部署大模型的方案,还是非常不错的。
1、跨平台:支持 macOS、Linux 和 Windows。
2、市面主流开源模型都支持:包括Llama 3.3, DeepSeek-R1, Phi-4, Gemma 2等54个开源模型。
3、REST API:Ollama提供对外API能力,想要自己开发客户端、或者集成到应用系统都是非常方便的。
4、生态完善:众多开 ...
C语言-语句和块
C语言提供了六种语句:表达式语句、标签语句、复合语句、选择语句、迭代语句、跳转语句
块:把实现某些功能的语句整合在一起,构成一个语法单元,该语法单元被称之为块,也称为语句块
选择语句
if(表达式1)表达式2
if(表达式1)表达式2 else 表达式3
switch(表达式1) 表达式2
针对第一种情况,如果表达式1为真,则 ...
C语言-运算符(2)
关系运算符
C语言有六种关系运算符,<、<=、>、>=、= =、!=。这六种运算符都是双目运算符都遵循左结合性。<、<=、>、>=这四个关系运算符的优先级相同,并且高于= =、!=,这两个关系运算符的优先级相同。
逻辑运算符
逻辑运算符与 &&
逻辑运算符&&,只要两个操作对象有一个为假,则表达式为假;非零即真的特性
潜规则:如果 ...
ShadowSql.net之精简版拆分
ShadowSql拆分为精简版和易用版,项目和nuget包同步拆分
ShadowSql项目拆分为ShadowSql.Core和ShadowSql
Dapper.Shadow项目拆分为Dapper.Shadow.Core和Dapper.Shadow
Dapper.Shadow.Core依赖ShadowSql.Core
Dapper.Shadow依赖ShadowSql
精简版的目标是够用、直接,基于接口编程
易用版的目标是好用、易用,基于泛型编程
易用版 ...
C语言-运算符(1)
算数运算符
+、 -、 *、 /、%、 ++、 --
其中++、--属于单目运算符,其他的五种属于双目运算符
除法运算符的两端如果是整数的时候,得到的结果也是整数,当两个操作数无法被整除的时候,会舍弃小数部分,只保留整数,不会四舍五入;如果两个操作数有一个为浮点数,则结果也为浮点数,精度默认为6位精度
取余运算符的两个操 ...
C语言-基础知识(3)
CPU刷新缓冲区的条件
刷新输出缓冲区
缓冲区数据已满会通知cpu
用户通知cpu去读取数据,在使用printf函数的时候加上‘\n’
输入缓冲区已满也会刷新输出缓冲区
缓冲区分类
根据io设备的不同,可以把缓冲区分为输入缓冲区和输出缓冲区;根据刷新形式的不同也可以分为:全缓冲、行缓冲、无缓冲
全缓冲指的是当缓冲区的数据 ...
WPF旋转板栈设计一例
效果图
项目中需要做一个机台的平面视图,点击其中一个料盒时,弹出该料盒的料管列表,用WPF示例做了一下,效果如下:
用户控件XAML
1 <UserControl x:Class="WpfApp1.Views.BoardStackControl"
2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
3 xmlns:x="http://s ...
(原创)[开源][.Net Framework 4.5] SimpleMVVM(极简MVVM框架)更新 v1.1,增加NuGet包
一、前言
意料之外,也情理之中的,在主业是传统行业的本人,技术的选型还是落后于时代。
这不,因现实需要,得将大库中的 WPF MVVM 相关部分功能拆分出来独立使用,想着来都来了,就直接开源得了,顺便放到NuGet上,方便大家使用。
事先声明:本次开源的代码来自网络各地,经自己整理并应用多年优化而成,不是严格意义上的 ...
Aspnet Core 10 Preview3已对最小API提供参数验证支持
前言
相信大家都或多或少用上了Minimal API,快速简洁,性能炸裂,是快速开发API端口的不二之选!但是呢目前正式版为止 最小API还并不内置支持对请求参数的内置验证支持,比如[Required],或者任何需要验证的地方,往往我们要实现这样的逻辑都必须自主扩展一个EndpointFilter,这个在NET社区也算是一个不大不小的槽点,不过呢MS总算 ...