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

进程(起个开头,复习的一天)day26

二:进程

一:字符串分割strtok

char *strtok(char *str, const char *delim)

参数

  • str: 要分割的字符串。在第一次调用时,传入要分割的字符串;后续调用时,传入 NULL,表示继续分割同一个字符串。
  • delim: 分隔符字符串。strtok() 会根据这个字符串中的任意一个字符来分割 str

返回值: 返回指向下一个标记的指针。如果没有更多的标记,则返回 NULL。

    char buf[128]="zhangsan:16:180:东航中心";char* args[4]={NULL};args[0]=strtok(buf,":"); // name args[1]=strtok(NULL,":"); // age NULL 是接着上次分割符+1的位置,开始 分离字符串,也是把:置成\0,识别NULLargs[2]=strtok(NULL,":");args[3]=strtok(NULL,":");printf("%s_%s_%s_%s\n",args[0],args[1],args[2],args[3]);
一:用strtok显示想要的进程数据

#include <stdio.h>
#include <stdlib.h>
#include <string.h>int main(int argc, char** argv)
{FILE* fp = fopen("/proc/800/status", "r");if (NULL == fp){printf("fopen error\n");return 1;}char data[3][128] = {0};for (int i = 0; i < 6; i++){char buf[128] = {0};fgets(buf, sizeof(buf), fp);if (0 == i){strcpy(data[0], buf);}else if (2 == i){strcpy(data[1], buf);}else if (5 == i){strcpy(data[2], buf);}}char *name=NULL;char* state=NULL;char* pid = NULL;strtok(data[0],"\t");name = strtok(NULL,"\n");strtok(data[1],"\t");state = strtok(NULL,"\n");strtok(data[2],"\t");pid = strtok(NULL,"\n");char result[128]={0};sprintf(result,"%s:%s:%s\n",name,state,pid);fputs(result,stdout);fclose(fp);// system("pause");return 0;
}
二:实现字典查找(用链表和文件)
#include "linklist.h"
#include <stddef.h>
#include <stdio.h>
#include <string.h>int main(int argc, char **argv) {FILE *fp = fopen("/home/linux/dict.txt", "r");if (fp == NULL) {printf("fopen error\n");return 1;}LinkList *ll = CreateLinkList();char buf[1000];DATATYPE data;while (fgets(buf, sizeof(buf), fp)) {// 清除行末换行符buf[strcspn(buf, "\n")] = '\0';char *word = strtok(buf, " ");char *mean = strtok(NULL, "\n");if (word == NULL || mean == NULL) {continue;}// 拷贝到结构体中strncpy(data.word, word, sizeof(data.word) - 1);data.word[sizeof(data.word) - 1] = '\0';strncpy(data.mean, mean, sizeof(data.mean) - 1);data.mean[sizeof(data.mean) - 1] = '\0';InsertTailLinkList(ll, &data);}fclose(fp);
//ShowLinkList(ll);
#if 1char want_word[20] = {0};scanf("%s", want_word);DATATYPE *result = FindInLinkList(ll, want_word);if (result != NULL) {printf("查找到:%s\t%s\n", result->word, result->mean);} else {printf("未找到该单词。\n");}#endifDestroyLinkList(&ll);// system("pause");return 0;
}
http://www.dtcms.com/a/265155.html

相关文章:

  • 轻松上手:使用Nginx实现高效负载均衡
  • 应用密码学纲要
  • 怎样理解:source ~/.bash_profile
  • 决策树(Decision tree)算法详解(ID3、C4.5、CART)
  • 在线学堂-3.媒资管理模块(二)
  • 软件反调试(2)- 基于窗口列表的检测
  • 外侧三兵策略
  • 睿抗省赛2023
  • 【通识】机器学习相关
  • YOLOv11剪枝与量化(二)通道剪枝技术原理
  • 【Ragflow】30.离线环境迁移方案
  • 数据库9:数据库字符编码调整与校队(排序)规则
  • STM32F103_Bootloader程序开发11 - 实现 App 安全跳转至 Bootloader
  • UI 设计|审美积累 | 拟物化风格(Skeuomorphism)
  • 基于Jeecgboot3.8.1的vue3版本前后端分离的flowable流程管理平台
  • ai之RAG本地知识库--基于OCR和文本解析器的新一代RAG引擎:RAGFlow 认识和源码剖析
  • 学习笔记(29):训练集与测试集划分详解:train_test_split 函数深度解析
  • SimBa:实现深度强化学习参数scaling up
  • 多路I/O转接服务器(select、poll、epoll)
  • 跨境贸易的主要挑战是什么?
  • monorepo + Turborepo --- 构建仓库结构
  • 如何设置电脑定时休眠?操作指南详解
  • 从 PostgreSQL 到 DolphinDB:数据实时同步一站式解决方案
  • 金融安全生命线:用AWS EventBridge和CloudTrail构建主动式入侵检测系统
  • 少样本学习在计算机视觉中的应用:原理、挑战与最新突破
  • Java 导出PDF 1、内容可以插入自定义表格 2、内容插入图片
  • Python3 学习(菜鸟)-06迭代器与生成器
  • 碰一碰矩阵发布源码开发技术揭秘-支持OEM贴牌搭建
  • 在幸狐RV1106板子上用gcc14.2本地编译安装apache2.4.63,开启http2和tls1.3,并且https支持XP系统的IE6-8浏览器
  • 《汇编语言:基于X86处理器》第6章 条件处理(2)