我是怎么知道 PTHREAD_MUTEX_INITIALIZER 是什么鬼东西的 ??
很简单 写这么几句代码
1 #include <pthread.h>
2
3 PTHREAD_MUTEX_INITIALIZER
cpp 一解析就出来了
1714 # 238 "/usr/include/pthread.h" 3 4
1715 int pthread_suspend (pthread_t);
1716 int pthread_continue (pthread_t);
1717 # 2 "main.c" 2
1718
1719 (pthread_mutex_t)19
当然这么野蛮的方法我是没有必要浪费时间记录的 我要的是用代码把这类宏的原型打印出来!
7 #define T(x) printf(#x " -> %s\n", strerror(x)); // pthread函数除pthread_exit()不返回之外, 其它函数都返回错误码, 这个宏打印这些函数的错误字符串
8 #define RESOLVE(x) TEXT(x) // 首先扩展x, 再转化为字符串
9 #define TEXT(x) #x // #和##的用途还要用说? #把x用""包裹起来, 同时帮你把x中的"用\"代替, 变成常量字符串字面值, ##有两个用法, 用来粘贴变量, 或使可变宏参数接受0个可变参数
15 printf("%s\n", RESOLVE(PTHREAD_MUTEX_INITIALIZER));
15 printf("%s\n", RESOLVE(__FILE__));
然后就是喜闻乐见的结果显示在我闪亮的终端:
(pthread_mutex_t)19
"main.c"
看看cpp预处理
printf("pthread_join(th, &r)" " -> %s\n", strerror(pthread_join(th, &r)));;
printf("%s\n", "(pthread_mutex_t)19");
printf("%s\n", "\"main.c\"");
我是怎么知道 PTHREAD_MUTEX_INITIALIZER 是什么鬼东西的 ??的更多相关文章
- CTF---Web入门第一题 what a fuck!这是什么鬼东西?
what a fuck!这是什么鬼东西?分值:10 来源: DUTCTF 难度:易 参与人数:7942人 Get Flag:3358人 答题人数:3475人 解题通过率:97% what a fuck ...
- what a fuck!这是什么鬼东西?
Topic Link http://ctf5.shiyanbar.com/DUTCTF/1.html 1) 打开链接发现一片看不懂的东西,还真是WTF? 2)分析发现是Jother编码 将其放到浏览器 ...
- 实验吧—Web——WP之 what a fuck!这是什么鬼东西?
打开链接——> 发现是一大堆符号,可能有些人见过这些样子的,这是一种编码方式,叫:jother编码 jother编码是一种运用于javasscript语言中利用少量字符构造精简的匿名函数方法,对 ...
- 实验吧web-易-what a fuck!这是什么鬼东西?
打开链接是一大串符号,是js编码的一种,全部复制下来,粘贴在控制台中回车就拿到flag了.
- 实验吧[WEB]——what a fuck!这是什么鬼东西?
解题链接:http://ctf5.shiyanbar.com/DUTCTF/1.html 原题链接:http://www.shiyanbar.com/ctf/56 解题必看: 的jother编码定义: ...
- .NET程序员细数Oracle与众不同的那些奇葩点
扯淡 距上次接触 Oracle 数据库已经是 N 年前的事了,Oracle 的工作方式以及某些点很特别,那会就感觉,这货就是一个奇葩!最近重拾记忆,一直在折腾 Oracle,因为 Oracle 与众不 ...
- CPU与内存的那些事
下面是网上看到的一些关于内存和CPU方面的一些很不错的文章. 整理如下: 转: CPU的等待有多久? 原文标题:What Your Computer Does While You Wait 原文地址: ...
- WC2015 酱油记
这是真·酱油记! Day0 因为我们在上海,所以只要坐高铁就可以了2333.到了火车站以后我们坐大巴到学军中学恩,结果坐大巴的时间和做坐高铁的时间差不做←_←. 吐槽了一下住宿环境和课程表就已经晚上了 ...
- What Your Computer Does While You Wait
转: CPU的等待有多久? 原文标题:What Your Computer Does While You Wait 原文地址:http://duartes.org/gustavo/blog/ [注:本 ...
随机推荐
- B
baababblebabblerbabebabelbaboonbabybabyhoodBabylonBabylonianbacchanalbacchanalianbachelorbacillusbac ...
- Java开发学习心得(二):Mybatis和Url路由
目录 Java开发学习心得(二):Mybatis和Url路由 1.3 Mybatis 2 URL路由 2.1 @RequestMapping 2.2 @PathVariable 2.3 不同的请求类型 ...
- 爬虫系列---scrapy post请求、框架组件和下载中间件+boss直聘爬取
一 Post 请求 在爬虫文件中重写父类的start_requests(self)方法 父类方法源码(Request): def start_requests(self): for url in se ...
- Enterprise architect 类图加时序图
原文地址:https://segmentfault.com/a/1190000005639047#articleHeader2 新建一个Project 没什么好说的,“文件-新建项目”,然后选择保存位 ...
- Spring Boot 学习之路二 配置文件 application.yml
一.创建配置文件 如图所示,我们在resources文件夹中新建配置文件application.yml 结构图 二.一些基本配置 server: port: 8090 //配置端口 session ...
- R语言学习——处理数据对象的实用函数
length(object) # 显示对象中元素/成分的数量 dim(boject) # 显示某个对象的维度 str(object) # 显示某个对象的结构 class(object) # 显示某个对 ...
- day 14 递归、匿名函数、内置函数
三目运算符 # 三目(元)运算符:就是 if...else...语法糖# 前提:简化if...else...结构,且两个分支有且只有一条语句# 注:三元运算符的结果不一定要与条件直接性关系cmd = ...
- 在Fabric ChainCode中导入第三方包(以状态机为例)
在企业级应用开发中,经常会涉及到流程和状态,而有限状态机(FSM)则是对应的一种简单实现,如果复杂化,就上升到Workflow和BPM了.我们在Fabric ChainCode的开发过程中,也很可能涉 ...
- GIT归纳整理
1. 将repo_a的分支提交到repo_b分支 repo_a:表示原始git库地址:repo_b:表示新增的git库地址. git remote add new_remote repo_b:new_ ...
- 看门狗芯片--SP706SEN--调试记录
一.前因后果 工程中,设备为了稳定可靠,会增加外部看门狗,但是外部看门狗一旦启动,就停不下来,必须在固定的时间范围内进行喂狗,不然看门狗芯片就会产生一个复位信号复位MCU.以前大家都认为看门狗一旦工作 ...