7 u011721450

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 28w+

shell 命令取关键字第二列参数pid,配合popen实例,获取线程堆栈信息

ps -aT |grep queueTask |awk '{ print $2}'

2020-08-08 14:14:57

写一个客户端程序和服务器程序,客户端程序连接上服务器之后,通过敲命令和服务器进行交互

题干请你分别写一个客户端程序和服务器程序,客户端程序连接上服务器之后,通过敲命令和服务器进行交互,支持的交互命令包括: pwd:显示服务器应用程序启动时的当前路径。 cd:改变服务器应用程序的当前路径。 ls:显示服务器应用程序当前路径下的文件列表。 quit:客户端进程退出,但是服务器端不能退出,第二个客户可以再次连接上服务器端。 客户端程序要求 1、可以指定待连接的服务器端 IP 地址和端口。 2、在输入一个命令之后,回车结束,之后等待服务器端...

2020-07-23 20:41:21

优雅/粗暴地关闭TCP连接--close-shutdown的选择

一个 TCP 连接需要经过三次握手进入数据传输阶段,最后来到连接关闭阶段。在最后的连接关闭阶段,我们需要重点关注的是“半连接”状态。 因为 TCP 是双向的,这里说的方向,指的是数据流的写入 - 读出的方向。比如客户端到服务器端的方向,指的是客户端通过套接字接口,向服务器端发送 TCP 报文;而服务器端到客户端方向则是另一个传输方向。在绝大数情况下,TCP 连接都是先关闭一个方向,此时另外一个方向还是可以正常进行数据传输。举个例子,客户端主动发起连接的中断,将自己到服务器端的数...

2020-07-21 11:46:03

输入一个字符串,以回车结束(字符串长度「=100)。该字符串由若干个单词组成,单词之间用一个空格隔开,所有单词区分大小写。现需要将其中的某个单词替换成另一个单词,并输出替换之后的字符串。

输入描述:多组数据。每组数据输入包括3行,第1行是包含多个单词的字符串 s,第2行是待替换的单词a,(长度<=100)第3行是a将被替换的单词b。(长度<=100)s, a, b 最前面和最后面都没有空格.输出描述:每个测试数据输出只有 1 行,将s中所有单词a替换成b之后的字符串。示例1输入You want someone to help youYouI输出I want someone to help you/*解题思路:先将s

2020-07-01 11:24:30

实现一个算法,删除单链表中间的某个结点,假定你只能访问该结点

实现一个算法,删除单向链表中间的某个结点,假定你只能访问该结点。给定待删除的节点,请执行删除操作,若该节点为尾节点,返回false,否则返回true直接free(p),这样行不通,因为我们不能访问其他结点;如果我们只能访问该结点,可以尝试将该结点的后继结点的数据复制到当前结点,然后删除后继结点typedef struct SListNode { int value; // 保存的值 struct SListNode* next; // 保存下一个结点的地址}...

2020-07-01 10:26:42

Stack is one of the most fundamental data structures, which is based on the principle of Last In Fir

输入:输入:PopPeekMedianPush 3PeekMedianPush 2PeekMedianPush 1PeekMedianPopPopPush 5Push 4PeekMedianPopPopPopPop输出:InvalidInvalid322124453Invalid#define StackMax 100000typedef struct stack_array { unsigned int c...

2020-06-30 21:48:53

栈空间大小不受限设计方法

typedef struct stack_mg{ unsigned int stack_count; // 栈的包含的数值 int struct stack_t *top; // 指向栈顶的位置}Stack_mg_t;//利用链表作为栈空间的节点数据结构,栈大小不受限typedef struct stack_t { unsigned int value; // 栈的值 int s...

2020-06-30 21:17:36

链表:链表分割问题:以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前,分割后保持原来顺序不变

typedef struct SListNode { int value;// 保存的值struct SListNode* next;// 保存下一个结点的地址} SListNode_t; //编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前SListNode_t* compaerSListNode(SListNode_t* head, int key){ if( NULL== head) ...

2020-06-30 19:17:46

TCP/IP三次握手总结

三次握手指的是客户端与服务器端的三次握手协议:TCP 三次握手的解读我们先看一下最初的过程,服务器端通过 socket,bind 和 listen 完成了被动套接字的准备工作,被动的意思就是等着别人来连接,然后调用 accept,就会阻塞在这里,等待客户端的连接来临;客户端通过调用 socket 和 connect 函数之后,也会阻塞。接下来的事情是由操作系统内核完成的,更具体一点的说,是操作系统内核网络协议栈在工作。下面是具体的过程:1、客户端的协议栈向服务器端发送了 SYN 包,并告诉.

2020-06-29 08:39:33

写一个strncpy(char *dest, const char *src, size_t cpy_lent) 的函数

strncpy是个安全函数,相对于strcpy而言。这个函数我们会经常用到,面试的时候也会时不时考一下,今天写一个,一是总结,二是方便日后自己回顾。char * strncpy(char * dest,const char *src,size_t cpy_lent){ char *tmp = dest; while (cpy_lent-- && (*dest++ = *src++) != '\0') //这里涉及多个知识点,如"++"的优先级高于"*",这样的写法很巧妙,会将

2020-06-11 17:35:10

/usr/bin/python^M: bad interpreter: No such file or directory 文件解决办法

很多情况下python作为脚本语言编写的脚本都是在windows上用IDE写好,自动化sync到linux服务器上,如果全部都是由IDE部署上去的一般不是很容易出问题,但是部署完之后在生产环境用vim稍作修改,往往会出现问题。如:#! /usr/bin/python# coding=utf-8... ...实际运行报错:/usr/bin/python^M: bad interpreter: No such file or directory仔细检查报错内容,并不会发现任何语句错误或者路径

2020-05-29 10:34:01

python 例子

python 语法优美,不是经常用,总结一片小的例子后续可以借鉴。#coding=utf-8#!/usr/bin/pythonimport osimport timeproject_table = {'ifconfig','cat log','tail -n log'}def handle_script(project_name): #获取时间打印 str_log = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(ti

2020-05-25 20:57:05

IPV4 地址和整形转换程序实现

前言最近看道一个面试题目,大体意思就是将ip地址,例如“192.168.1.116”转换成int类型,同时还能在转换回去思路ip地址转int类型,例如ip为“192.168.1.116”,相当于“.“将ip地址分为了4部分,求其转换成int 型及:192*256^3 + 168*256^2 + 1*256 +116*1。int类型转ip地址,思路类似,除以权值即可,但是有部分字符串的操作#include <stdio.h>#include <stdlib.h&g..

2020-05-20 10:54:34

快排算法

首先设置两个变量i,j。 分别指向序列的首尾元素。 该例子是以第一个元素为基准,从小到大进行排列。 让j从后向前进行查询,直到找到第一个小于66的元素。 则将最后一个j指向的数23,和i指向的66交换位置。 然后将i从前向后查询,直到找到第一个大于66的元素76. 将76和66位置互换。 让j从后向前进行查询,直到找到第一个小于6...

2020-03-18 21:03:46

Linux中父进程为何要苦苦地知道子进程的死亡原因? (转)

白发人送黑发人一个普遍的常识是,在Linux里面总是“白发人送黑发人”,子进程死亡,父进程透过wait等待子进程死亡,并清理子进程僵尸,当然父进程也可以因此而获得子进程的死亡原因。子曾经曰过:“Talk is cheap. Show me the code”,我们来看看实际的代码:上述代码中,子进程在第18行通过pause等待信号,父进程在代码的第22行通过waitpid等待子进程...

2020-03-16 08:17:01

linux 利用shell将当前时间写入文件

#!/bin/bashecho `date +"%Y-%m-%d %H:%M:%S"` begin >> ./a.logecho `date +"%Y-%m-%d %H:%M:%S"` end >> ./a.log等到的结果:[root@A23205350 cen]# cat a.log 2020-02-20 16:41:11 begin2020-02...

2020-02-20 16:56:59

linux用户面进程分用户面内存和内核态内存,那么内核态进程的内存是如何呈现的?

首先疑问来源是是进程的内存分布:(来自:https://blog.csdn.net/ordeder/article/details/41654509)(这里需要通过极客时间上的刘超的讲解linux内存管理进行进一步细化)从而引发的疑问:那么内核态中的进程是如何区分自己的内存的?这里就有了经典的一句话,内核态中没有进程的概念?详细资料需要结合https://blog.csdn.n...

2020-02-04 21:33:02

回溯算法求解,括号对数组合问题

给出n代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。例如,给出n = 3,生成结果为:[ "((()))", "(()())", "(())()", "()(())", "()()()"]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/generate-parenthe...

2019-11-21 10:29:10

TCP的三次握手与四次挥手理解及面试题(很全面)

序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号。确认号ack:占4个字节,期待收到对方下一个报文段的第一个数据字节的序号;序列号表示报文段携带数据的第一个字节的编号;而确认号指的是期望接收到下一个字节的编...

2019-10-21 10:56:08

面试题--给40亿个不重复的,没有排过序,给一个无符号整数,如何判断这个数在这40亿个数中

如果常规的想法是给这40亿数,放到一个很大的数组中,快速排序,然后采用二分查找,来判断这个数是否存在;但是计算机的内存就是4G,大小差不多刚好是2^32大约为42亿左右,一个整形4个字节,40亿数大约需要16G个字节,在现实基本不可能实现,那么该如何存储呢?方法:位存储一个整形32个位,16G个字节只需要500M就可以,然后设置比特位1表示这个数存在,0表示这个数不存在。#inc...

2019-10-20 11:14:35

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。