<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[idealcitier's Daily life]]></title><description><![CDATA[小白的日常学习]]></description><link>https://blog.youkuaiyun.com/idealcitier</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; idealcitier]]></copyright><item><title><![CDATA[delete a mutex while it is locked]]></title><link>https://blog.youkuaiyun.com/idealcitier/article/details/128861587</link><guid>https://blog.youkuaiyun.com/idealcitier/article/details/128861587</guid><author>idealcitier</author><pubDate>Fri, 03 Feb 2023 10:02:33 +0800</pubDate><description><![CDATA[[1] https://stackoverflow.com/questions/34030156/deleting-a-mutex-that-is-locked
[2] https://en.cppreference.com/w/cpp/thread/mutex/~mutex]]></description><category></category></item><item><title><![CDATA[常用的环境变量PATH,LD_LIBRARY_PATH,LIBRARY_PATH]]></title><link>https://blog.youkuaiyun.com/idealcitier/article/details/128239596</link><guid>https://blog.youkuaiyun.com/idealcitier/article/details/128239596</guid><author>idealcitier</author><pubDate>Thu, 08 Dec 2022 16:50:19 +0800</pubDate><description><![CDATA[PATH,LD_LIBRARY_PATH,LIBRARY_PATH环境变量经常使用，但经常忘记，遂记录下。]]></description><category></category></item><item><title><![CDATA[signal]]></title><link>https://blog.youkuaiyun.com/idealcitier/article/details/128075462</link><guid>https://blog.youkuaiyun.com/idealcitier/article/details/128075462</guid><author>idealcitier</author><pubDate>Mon, 28 Nov 2022 10:39:47 +0800</pubDate><description><![CDATA[信号提供一种机制，告诉用户进程发生了那些异常。]]></description><category></category></item><item><title><![CDATA[exit order]]></title><link>https://blog.youkuaiyun.com/idealcitier/article/details/127672941</link><guid>https://blog.youkuaiyun.com/idealcitier/article/details/127672941</guid><author>idealcitier</author><pubDate>Thu, 03 Nov 2022 16:24:43 +0800</pubDate><description><![CDATA[【代码】exit order。]]></description><category></category></item><item><title><![CDATA[visit]]></title><link>https://blog.youkuaiyun.com/idealcitier/article/details/127307844</link><guid>https://blog.youkuaiyun.com/idealcitier/article/details/127307844</guid><author>idealcitier</author><pubDate>Thu, 13 Oct 2022 19:41:17 +0800</pubDate><description><![CDATA[【代码】visit。]]></description><category></category></item><item><title><![CDATA[bfs广度优先遍历]]></title><link>https://blog.youkuaiyun.com/idealcitier/article/details/126915136</link><guid>https://blog.youkuaiyun.com/idealcitier/article/details/126915136</guid><author>idealcitier</author><pubDate>Sun, 18 Sep 2022 11:02:37 +0800</pubDate><description><![CDATA[bfs]]></description><category></category></item><item><title><![CDATA[CMake 获取clang 版本]]></title><link>https://blog.youkuaiyun.com/idealcitier/article/details/125787594</link><guid>https://blog.youkuaiyun.com/idealcitier/article/details/125787594</guid><author>idealcitier</author><pubDate>Thu, 14 Jul 2022 16:33:49 +0800</pubDate><description><![CDATA[通过cmake set设置CMAKE_C_COMPILER/CMAKE_ASM_COMPILER/CMAKE_CXX_COMPILER，
CMake 中与 clang相关的变量如下，但都是系统clang相关的，与前面设置clang无关:可以通过下面的命令获取自定义的clang的版本
[1] https://stackoverflow.com/questions/16150888/cmake-branch-on-clang-version...]]></description><category></category></item><item><title><![CDATA[C语言嵌入汇编Extended ASM]]></title><link>https://blog.youkuaiyun.com/idealcitier/article/details/124700181</link><guid>https://blog.youkuaiyun.com/idealcitier/article/details/124700181</guid><author>idealcitier</author><pubDate>Tue, 10 May 2022 23:20:11 +0800</pubDate><description><![CDATA[Extended ASM
在程序中可能需要对寄存器进行操作，而使用C/C++无法直接对寄存器进行操作，这就要用到嵌入汇编。
基本语法
嵌入汇编的基本语法如下：
asm asm-qualifiers (
    "AssemblerTemplate"  // 汇编指令，使用\n分割，可写多行
    : OutputOperands     // 输出
    : InputOperands      // 输入
    : Clobbers           // 汇编代码更改的寄存器，使用','分割，具]]></description><category></category></item><item><title><![CDATA[dlopen 和函数属性 __attribute__((constructor))& __attribute__((destructor))]]></title><link>https://blog.youkuaiyun.com/idealcitier/article/details/122556971</link><guid>https://blog.youkuaiyun.com/idealcitier/article/details/122556971</guid><author>idealcitier</author><pubDate>Tue, 18 Jan 2022 11:51:42 +0800</pubDate><description><![CDATA[dlopen 和函数属性 attribute((constructor))&amp; attribute((destructor))
Shared objects may export functions using the

__attribute__((constructor)) and __attribute__((destructor))
function attributes.  Constructor functions are executed before
dlopen() returns,]]></description><category></category></item><item><title><![CDATA[cmake demo]]></title><link>https://blog.youkuaiyun.com/idealcitier/article/details/122488022</link><guid>https://blog.youkuaiyun.com/idealcitier/article/details/122488022</guid><author>idealcitier</author><pubDate>Fri, 14 Jan 2022 10:00:49 +0800</pubDate><description><![CDATA[hello world with cmake
编写源文件
// hello/main.cpp
#include &lt;iostream&gt;

int main(int argc, char** argv){
	std::cout &lt;&lt; "Hello World" &lt;&lt; std::endl;
	return 0;
}

编写cmake文件
创建文件CMakeList.txt,文件内容
project(HelloWorld)
cmake_minimum_required(VERSI]]></description><category></category></item><item><title><![CDATA[c++ string bugfix]]></title><link>https://blog.youkuaiyun.com/idealcitier/article/details/122173746</link><guid>https://blog.youkuaiyun.com/idealcitier/article/details/122173746</guid><author>idealcitier</author><pubDate>Mon, 27 Dec 2021 15:46:51 +0800</pubDate><description><![CDATA[#include &lt;iostream&gt;
#include &lt;algorithm&gt;
#include &lt;string&gt;
#include &lt;vector&gt;

std::vector&lt;std::string&gt; spiltStringBySemicilon(std::string str) {
    std::vector&lt;std::string&gt; eles;
    while (int pos = str.find(";") != st]]></description><category></category></item><item><title><![CDATA[删除string首尾以及中间的空格]]></title><link>https://blog.youkuaiyun.com/idealcitier/article/details/122172258</link><guid>https://blog.youkuaiyun.com/idealcitier/article/details/122172258</guid><author>idealcitier</author><pubDate>Mon, 27 Dec 2021 14:57:08 +0800</pubDate><description><![CDATA[删除string首尾以及中间的空格
对char*字符串进行操作，删除其中的空格，十分的繁琐。若代码为c++代码可以借助标准库算法，可对字符串首尾以及中间的空格进行删除。
#include &lt;iostream&gt;
#include &lt;algorithm&gt;
#include &lt;string&gt;

int main() {
    std::string content = "   11223  3344  ";
    content.erase(remove(content.b]]></description><category></category></item><item><title><![CDATA[string&c_str()的使用]]></title><link>https://blog.youkuaiyun.com/idealcitier/article/details/122116938</link><guid>https://blog.youkuaiyun.com/idealcitier/article/details/122116938</guid><author>idealcitier</author><pubDate>Thu, 23 Dec 2021 21:27:34 +0800</pubDate><description><![CDATA[C语言中对字符串(char*)操作的方法较少，在c++ 中可将(char*)转换为string类进行操作。c++中可使用的c_str() 方法将string转换为const char *。 但使用该方法要注意使用场合，如使用不当，极易出现各种问题。
#include &lt;iostream&gt;
#include &lt;string&gt;

using namespace std;

const char *GetName(const char *nameAndID) {
  if (nameAnd]]></description><category></category></item><item><title><![CDATA[迭代过程中删除指定元素]]></title><link>https://blog.youkuaiyun.com/idealcitier/article/details/121873619</link><guid>https://blog.youkuaiyun.com/idealcitier/article/details/121873619</guid><author>idealcitier</author><pubDate>Sat, 11 Dec 2021 15:01:08 +0800</pubDate><description><![CDATA[迭代过程中删除指定元素
总结4中在迭代过程删除list中指定元素
方法1
#include &lt;iostream&gt;
#include &lt;list&gt;

using namespace std;

int main() {
    list&lt;int&gt; lst = {1,2,3,4,5};
    auto it = lst.begin();
    while(it != lst.end()) {
        if (*it == 4) {
            it =]]></description><category></category></item><item><title><![CDATA[生成core dump文件进行gdb调试]]></title><link>https://blog.youkuaiyun.com/idealcitier/article/details/121636754</link><guid>https://blog.youkuaiyun.com/idealcitier/article/details/121636754</guid><author>idealcitier</author><pubDate>Tue, 30 Nov 2021 16:42:40 +0800</pubDate><description><![CDATA[环境
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.2 LTS
Release:        18.04
Codename:       bionic

生成core dump文件
ulimit -c unlimited

echo 1 &gt; /proc/sys/kernel/core_uses_pid

添加如下内容到/etc/sysctl.conf文件夹中，生成的coredump文]]></description><category></category></item><item><title><![CDATA[ubuntu tab 自动补全失效]]></title><link>https://blog.youkuaiyun.com/idealcitier/article/details/120980552</link><guid>https://blog.youkuaiyun.com/idealcitier/article/details/120980552</guid><author>idealcitier</author><pubDate>Tue, 26 Oct 2021 20:51:17 +0800</pubDate><description><![CDATA[现象
没有修改.bashrc文件，共用一台机器的小伙伴也没有对系统的bashrc文件的进行修改。tab的自动补全功能莫名其妙的失效。
使用tab自动补全时，显示如下内容(仅粘贴部分内容)
+ _init_completion
+ local exclude= flag outx errx inx OPTIND=1
+ getopts n:e:o:i:s flag
+ COMPREPLY=()
+ local 'redir=@(?([0-9])&lt;|?([0-9&amp;])&gt;?(&gt;)|&gt]]></description><category></category></item><item><title><![CDATA[atexit，exit]]></title><link>https://blog.youkuaiyun.com/idealcitier/article/details/118027709</link><guid>https://blog.youkuaiyun.com/idealcitier/article/details/118027709</guid><author>idealcitier</author><pubDate>Fri, 18 Jun 2021 15:40:06 +0800</pubDate><description><![CDATA[exit
任何一个线程调用exit都会导致进程结束(进程一旦结束，进程中的所有线程都会结束)
atexit
通过atexit注册的方法，可以在程序正常退出(exit)时进行执行。

注册的方法为无参数、无返回值的方法。
atexit最多可以注册32个方法。
exit函数调用后，执行顺序和注册的顺序相反，也就是说最后注册的方法先执行。
同一个方法注册多次会执行多次

demo
// gcc demo.cpp -lpthread
#include&lt;pthread.h&gt;
#include&lt;std]]></description><category></category></item><item><title><![CDATA[tmux常用设置和常用命令]]></title><link>https://blog.youkuaiyun.com/idealcitier/article/details/109908129</link><guid>https://blog.youkuaiyun.com/idealcitier/article/details/109908129</guid><author>idealcitier</author><pubDate>Sat, 21 Nov 2020 21:03:46 +0800</pubDate><description><![CDATA[tmux
tmux自定义快捷键
默认prefix为ctrl + b， 这个设计对于我个人不方便，修改为ctrl+x
// ~/.tmux.conf
unbind C-b
set -g prefix C-x

基本思路
session→windows→panes
Session
tmux可以创建多个session
tmux new -s sessionName

sessionName为自定义的session的名字
查看所有的session
tmux ls

session外选择指定打开的session
tm]]></description><category></category></item><item><title><![CDATA[linux 常用命令]]></title><link>https://blog.youkuaiyun.com/idealcitier/article/details/109371349</link><guid>https://blog.youkuaiyun.com/idealcitier/article/details/109371349</guid><author>idealcitier</author><pubDate>Thu, 29 Oct 2020 21:43:37 +0800</pubDate><description><![CDATA[linux 常用命令
查看文件夹下所有的软链接
ls -alR | grep ^l


]]></description><category></category></item><item><title><![CDATA[windows-terminal设置]]></title><link>https://blog.youkuaiyun.com/idealcitier/article/details/109296223</link><guid>https://blog.youkuaiyun.com/idealcitier/article/details/109296223</guid><author>idealcitier</author><pubDate>Mon, 26 Oct 2020 19:07:29 +0800</pubDate><description><![CDATA[// For documentation on these settings, see: https://aka.ms/terminal-documentation
{
    "$schema": "https://aka.ms/terminal-profiles-schema",
    "defaultProfile": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
    "theme": "dark",
    "confirmCloseAllTabs": f]]></description><category></category></item></channel></rss>