当前位置: 首页 > news >正文

【工作篇】软件工程师的知识基础(持续更新)

目录

1. linux 知识篇


1. linux 知识篇

1. Linux API 是什么

Linux API 是指 Linux 操作系统 提供的应用程序接口,用于与操作系统进行交互。它包含了一系列的函数、系统调用、库函数和数据结构,用于实现各种系统级的操作,如文件操作、进程管理、网络通信等。

常见的 Linux API 包括 POSIX 标准定义的接口、系统调用(如 openreadwrite 等)、网络套接字 API(如 socketbindlisten 等)、进程管理 API(如 forkexecwaitpid 等)等。

总的来说,Linux API 是开发者与 Linux 操作系统交互的桥梁,为应用程序的开发提供了丰富的功能和接口。

【简单示例】假设要创建一个简单的C程序,在Linux上创建一个文本文件并写入一些内容。可以使用Linux API中的函数来实现

#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>int main() {// 创建或打开一个文件,如果不存在则创建,如果存在则截断为0int fd = open("example.txt", O_CREAT | O_WRONLY | O_TRUNC, 0644);if (fd == -1) {perror("open");exit(EXIT_FAILURE);}// 写入内容到文件const char *text = "Hello, Linux API!\n";ssize_t bytes_written = write(fd, text, strlen(text));if (bytes_written == -1) {perror("write");close(fd);exit(EXIT_FAILURE);}// 关闭文件if (close(fd) == -1) {perror("close");exit(EXIT_FAILURE);}printf("File 'example.txt' created and written successfully.\n");return 0;
}

该程序使用了几个Linux API函数:

  1. open():用于打开或创建一个文件,返回一个文件描述符(file descriptor),如果出错则返回-1。
  2. write():用于将数据写入文件,接受文件描述符、数据指针和数据长度作为参数,返回写入的字节数,如果出错则返回-1。
  3. close():用于关闭文件,接受文件描述符作为参数,返回0表示成功,-1表示失败。

这个示例演示了如何使用Linux API来创建一个文件并写入内容。通过调用这些函数,可以直接与Linux操作系统进行交互,而不需要了解底层实现细节。

相关文章:

【工作篇】软件工程师的知识基础(持续更新)

目录 1. linux 知识篇 1. linux 知识篇 1. Linux API 是什么 Linux API 是指 Linux 操作系统 提供的应用程序接口&#xff0c;用于与操作系统进行交互。它包含了一系列的函数、系统调用、库函数和数据结构&#xff0c;用于实现各种系统级的操作&#xff0c;如文件操作、进程…...

知识付费系统开源方案,教育机构如何利用朋友圈做转介绍?

招生成本高&#xff0c;效果差让许多教育机构头疼不已。对于教育机构来说通过转介绍招生是一个非常有效的途径&#xff0c;那么教育机构如何利用朋友圈做转介绍呢?今天小编就来和大家分享一下。 利用朋友圈做转介绍&#xff0c;主要是通过做活动&#xff0c;来完成增加粉丝、扩…...

c++20 std::reinterpret_cast、std::bit_cast、std::static_cast

std::reinterpret_cast 类型不相关的转换&#xff0c;不安全例如转为&&#xff0c;不支持&#xff0c;要求sizeof相同&#xff1a; uint32_t n32 12345678;//0x00bc614e uint32_t* ptr reinterpret_cast<uint32_t*>(n32);//0x00bc614e uint32_t& ref reinter…...

PHP单独项目启动演示

文章目录 phpstudy得到文件打开phpStudy.exe运行项目 Apache运行后又自动停止 phpstudy 得到文件 一般我们会得到这么一个项目文件&#xff0c;如果外层有“中文路径”&#xff0c;请剪切此内容作为项目根目录即可 打开phpStudy.exe 因为我又正常的编程环境和mysql&#x…...

vscode 通过ssh 远程执行ipynb +可以切换conda env

主要是保证几个点 远程服务器python 环境没问题 conda这些也都有的ssh的账户 是有conda权限的没有免密就输入密码 免密教程就是最基本的那种 公钥copy过去就行了vscode 那几个插件都要装好 开始操作 首先 vscode 点击左侧工具栏中的扩展&#xff0c;搜索“ssh”&#xff0c;…...

ASP.NET银行大厅自助信息系统的开发与实现

摘 要 本毕业设计在基于银行业务大厅现有业务的基础上&#xff0c;针对自助银行的概念和其独有特点&#xff0c;通过.NETSQL技术&#xff0c;开发一个简单的银行大厅自助信息系统&#xff0c;完成一些自助银行的业务需求如帐户信息查询、帐户挂失、自助交费、留言、新闻查询…...

学习Vue3中reactive

学习Vue3中reactive 一、前言1、响应式对象2、对象属性的访问3、嵌套响应式对象4、避免直接修改响应式对象5、ref vs reactive 一、前言 在 Vue 3 中&#xff0c;reactive 是一个用于创建响应式对象的函数。响应式对象是 Vue 3 中数据驱动视图的核心&#xff0c;它们的属性的变…...

【Transformer-BEV编码(10)】CVPR2021 PYVA 第一个明确提到 cross-attention decoder可用于视图转BEV

论文信息 论文名&#xff1a;Projecting Your View Attentively: Monocular Road Scene Layout Estimation via Cross-view Transformation 中文&#xff1a;通过交叉视图变换&#xff08;crossview transform module&#xff09;估计单目道路场景布局 数据集&#xff1a;KITT…...

nestJs中跨库查询

app.module.ts中配置 模块的module中 注意实体类在写的时候和数据库中的表名一样 service中使用一下...

Java编程思想

面向对象编程(OOP)-CSDN博客 面向对象(OOP)的主要特点-CSDN博客 接口(Interface)和抽象类(Abstract Class)编程思想-CSDN博客 接口(Interface)和抽象类(Abstract Class)区别-CSDN博客 抽象类(Abstract Class)-CSDN博客 普通类和抽象类-CSDN博客 内部类编程思想-CSDN博客 …...

数组(Java)

数组 数组是相同类型元素的集合。 数组的定义和使用 数组的创建 数组名又叫引用变量&#xff0c;简称引用 下面代码段中new表示创建新的对象 T[ ] 数组名 new T[ N ];//数组名又叫引用变量&#xff0c;简称变量 //T&#xff1a;表示数组中存放元素的类型 //T[]&#xf…...

接口自动化测试框架搭建

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 关注公众号&#xff1a;互联网杂货铺&#xff0c;回复1 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 一、原理及特点 参数放在XML文件中进行管理用httpClien…...

(四十二)第 6 章 树和二叉树(树的二叉链表(孩子-兄弟)存储)

1. 背景说明 2. 示例代码 1) errorRecord.h // 记录错误宏定义头文件#ifndef ERROR_RECORD_H #define ERROR_RECORD_H#include <stdio.h> #include <string.h> #include <stdint.h>// 从文件路径中提取文件名 #define FILE_NAME(X) strrchr(X, \\) ? strrch…...

测试萌新Python学习(五)接口自动化测试requests

requests 接口自动化测试requests库基本实现请求-GET基本实现请求-POST基本实现请求-补充 sessionCookie和Session案例params 接口自动化测试 概念程序驱动代替人工驱动去实现接口测试 实现方式 测试工具(jmeter, postman, …)编码工具(python, java, …) 比较 工具 优点:…...

Python 机器学习 基础 之 监督学习 [朴素贝叶斯分类器] / [决策树] 算法 的简单说明 / [graphviz] 绘制决策树

Python 机器学习 基础 之 监督学习 [朴素贝叶斯分类器] / [决策树] 算法 的简单说明 / [graphviz] 绘制决策树 目录 Python 机器学习 基础 之 监督学习 [朴素贝叶斯分类器] / [决策树] 算法 的简单说明 / [graphviz] 绘制决策树 一、简单介绍 二、监督学习 算法 说明前的 数…...

QT日志类SimpleQtLogger的简单记录

在现代软件开发中&#xff0c;日志记录是必不可少的部分。它不仅帮助开发者在调试和维护软件时了解程序的运行状态&#xff0c;还能提供关键的错误信息。对于使用Qt框架开发应用程序的开发者来说&#xff0c;选择一个合适的日志库至关重要。本文将详细介绍Qt日志库SimpleQtLogg…...

设计模式:观察者模式

观察者模式&#xff08;Observer Pattern&#xff09;是一种行为设计模式&#xff0c;它定义了对象之间的一对多依赖关系&#xff0c;当一个对象的状态发生改变时&#xff0c;所有依赖于它的对象都会得到通知并被自动更新。这种模式通常被用来实现事件处理系统、实时数据更新、…...

ICode国际青少年编程竞赛- Python-5级训练场-带参数函数

ICode国际青少年编程竞赛- Python-5级训练场-带参数函数 1、 def get_item(a):Dev.step(a)Dev.step(-a) get_item(4) Spaceship.step(2) get_item(2) Spaceship.step(3) get_item(5) Spaceship.step(2) get_item(3) Spaceship.step(3) get_item(4)2、 def get_item(a): D…...

运维别卷系列 - 云原生监控平台 之 02.prometheus exporter 实践

文章目录 [toc]exporter 简介常用的 exporternode-exporter 实践创建 svc创建 daemonsetprometheus 配置服务发现 exporter 简介 随着 Prometheus 的流行&#xff0c;很多系统都已经自带了用于 Prometheus 监控的接口&#xff0c;例如 etcd、Kubernetes、CoreDNS 等&#xff0c…...

OSPF基本配置

1.启动OSPF进程 [rijospf1 router-id 1.1.1.1 --- 手工配置RID [r1-ospf-1) 2&#xff0c;创建区域 [r1-ospf-1]area 0 [r1-ospf-1-area-0.0.0.0) 3&#xff0c;宣告 目的:1&#xff0c;只有被宣告网段中的接口才能被激活。 --- 激活接口 ---- 只有激活的接口才能收发OSPF的…...

别急着加内存!PyTorch报错‘DefaultCPUAllocator: not enough memory’的另类解法(附一键修复脚本)

别急着加内存&#xff01;PyTorch报错‘DefaultCPUAllocator: not enough memory’的另类解法 当你看到PyTorch抛出RuntimeError: DefaultCPUAllocator: not enough memory时&#xff0c;第一反应可能是检查任务管理器——然后发现物理内存明明还剩大半&#xff0c;这个报错就显…...

phpenv终极指南:5分钟掌握PHP多版本管理的完整解决方案

phpenv终极指南&#xff1a;5分钟掌握PHP多版本管理的完整解决方案 【免费下载链接】phpenv Simple PHP version management 项目地址: https://gitcode.com/gh_mirrors/ph/phpenv 还在为不同PHP项目间的版本冲突而烦恼吗&#xff1f;phpenv为您提供了一站式PHP版本管理…...

从ERR_CERT_COMMON_NAME_INVALID错误,聊聊SSL证书里的Common Name和SAN到底有什么区别?

从ERR_CERT_COMMON_NAME_INVALID错误解析SSL证书中CN与SAN的演进逻辑 当你在Chrome浏览器中看到鲜红色的ERR_CERT_COMMON_NAME_INVALID警告页面时&#xff0c;背后隐藏的是一场持续二十年的证书标准进化史。这个看似简单的域名验证错误&#xff0c;实际上是现代网络安全体系对传…...

告别ArcGIS!用Python+MRT批量处理MODIS 16A2蒸散发数据,从HDF到月均ET全流程

告别ArcGIS&#xff01;用PythonMRT批量处理MODIS 16A2蒸散发数据&#xff0c;从HDF到月均ET全流程 在生态水文研究中&#xff0c;MODIS 16A2蒸散发数据&#xff08;ET&#xff09;是评估区域水资源平衡的关键指标。然而&#xff0c;传统ArcGIS手动操作不仅效率低下&#xff0c…...

从攻到防:手把手在Kali Linux上搭建ARP欺骗实验环境(含Wireshark分析)

构建安全的本地网络实验室&#xff1a;Kali Linux下ARP欺骗攻防实战指南 在网络安全领域&#xff0c;理解攻击原理是构建有效防御的第一步。ARP欺骗作为一种经典的中间人攻击技术&#xff0c;常被用于网络渗透测试中。本文将带你从零开始搭建一个完全隔离的虚拟实验环境&#x…...

从Excel到预测:5分钟搞定Python读取本地iris.csv文件并完成分类

从Excel到预测&#xff1a;5分钟搞定Python读取本地iris.csv文件并完成分类 当你第一次接触机器学习时&#xff0c;最令人沮丧的往往不是算法本身&#xff0c;而是那些看似简单却总出问题的数据准备环节。我至今记得自己对着一个简单的CSV文件折腾了整个下午的狼狈经历——列名…...

联发科MT6873核心板:5G安卓设备开发实战与硬件设计指南

1. 项目概述&#xff1a;MT6873核心板&#xff0c;一款为智能终端注入5G灵魂的“心脏”在智能硬件开发领域&#xff0c;选对一颗“心脏”——也就是核心板或主控模块&#xff0c;往往决定了整个产品的性能上限、功能边界和市场竞争力。今天要深入聊的&#xff0c;就是联发科&am…...

一文读懂:文档解析、RAG、知识库及文档Agent

AI会取代人类工作吗&#xff1f;斯坦福大学教授、AI领域顶尖学者吴恩达近日明确表示&#xff1a;不会有AI就业末日。在他看来&#xff0c;AI会影响岗位、改变技能要求、替代部分任务&#xff0c;但将其描绘成大规模失业灾难&#xff0c;“是在制造不必要的恐惧&#xff0c;也是…...

ATxmega时钟与GPIO配置详解:从原理到实战调试

1. 项目概述&#xff1a;从零认识ATxmage的时钟与GPIO最近在捣鼓一块ATxmage的开发板&#xff0c;很多刚入门的朋友拿到手&#xff0c;面对密密麻麻的引脚和一堆陌生的寄存器&#xff0c;往往不知道从哪里下手。其实&#xff0c;玩转任何一款微控制器&#xff0c;最核心、最基础…...

cstore_fdw迁移指南:从传统表到列式存储的无缝切换

cstore_fdw迁移指南&#xff1a;从传统表到列式存储的无缝切换 【免费下载链接】cstore_fdw Columnar storage extension for Postgres built as a foreign data wrapper. Check out https://github.com/citusdata/citus for a modernized columnar storage implementation bui…...