
c
dragoo1
这个作者很懒,什么都没留下…
展开
-
error C2440: “类型转换”: 无法从“stu_a”转换为“stu_b”
编译报错:error C2440: “类型转换”: 无法从“stu_a”转换为“stu_b”原因:C语言中的结构体并不能直接进行强制类型转换,只有。环境:win10+vs2017。可以进行强制类型转换。原创 2024-12-18 15:44:13 · 166 阅读 · 0 评论 -
rename函数报Invalid cross-device link
参考别人帖子,直接在百度使用关键字linux c rename 跨磁盘,搜索出了一篇一样的问题帖子(可以参考nginx中的实现ngx_ext_rename_file,也可以参考linux中mv命令的实现。方案二:移动文件时,判断错误代码为EXDEV时,采用copy(读文件再写文件)的方式移动文件。参考:https://www.jianshu.com/p/902d84deff87。),他的解决方案是不让文件跨磁盘。没有修改代码来解决需要跨磁盘的情况。rename不支持跨文件系统移动,详解介绍(原创 2024-08-05 14:39:03 · 351 阅读 · 0 评论 -
linux下system函数错误返回-1 错误原因NO child processes(转)
再者,据他们的说法,修改信号处理方式是为了避免僵尸进程,当然初衷是好的,但这样的升级影响了一些函数的使用方式,比如system()函数、wait()函数、waipid()、fork()函数,这些函数都与子进程有关,如果你希望使用wait()或waitpid()对子进程收尸,那么你必须使用上面介绍的方式:在调用前(事实上是fork()前)将SIGCHLD信号置为SIG_DFL处理方式,调用后(事实上wait()/waitpid()后)再将信号处理方式设置为从前的值。是啊,运行良好的程序怎么突然就挂了呢?转载 2024-08-05 10:18:25 · 400 阅读 · 0 评论 -
ld.exe: unrecognized option ‘--major-image-version‘
原因:将project指令放到了set(CMAKE_SYSTEM_NAME Linux)之前。问题:在windows环境使用cmake+mingw32+gcc交叉工具链报错。原创 2024-05-06 21:45:23 · 1140 阅读 · 2 评论 -
可变参数 C/C++ 宏定义(转)
【代码】可变参数 C/C++ 宏定义(转)转载 2024-04-30 10:45:35 · 67 阅读 · 0 评论 -
编程参考 - C语言中将字符串转换为整数(转)
C语言,主要有两种方法可以将字符串转为整数:atoi() 和 strtol()。转载 2023-02-21 09:42:36 · 5108 阅读 · 0 评论 -
如何判断.lib是静态库还是导入库(转)
VS自带的一个工具 - lib.exe。转载 2022-11-21 15:32:27 · 377 阅读 · 0 评论 -
C语言 strstr忽略大小写
strstr可以用来查找字符串,但是不支持忽略大小写的功能,虽然可以全部转为大写再判断,但是会影响效率。所以需要在strstr的基础上修改,下面是strstr的源码。效率非常高的库函数,我们稍作修改即可。这样实现了strstr忽略大小写匹配。......原创 2022-08-29 10:26:03 · 4334 阅读 · 0 评论 -
内存碎片与malloc(转)
linux提供了brk,sbrk系统调用来申请释放内存。linux系统通过一个指针来管理内存,如图所示堆区向上生长,使用一个指针指向堆顶。每次申请内存,使用系统调用把brk指针向上移动,释放内存就把brk指针向下移动。但是如果不想释放data2直接释放data1,这是做不到的。不需要的数据data1,必须等上面的数据都释放后才能释放。不需要的内存无法归还给操作系统,这就是内存碎片。一、libc库(stdlib.h)的mallocmalloc使用链表来管理内存。1、使用brk申请一大块内存转载 2022-04-12 09:45:16 · 1004 阅读 · 0 评论 -
c/c++,输入一个字符
getch()、getche()和getchar()函数 (1) getch()和getche()函数 这两个函数都是从键盘上读入一个字符。其调用格式为: getch(); getche(); 两者的区别是: getch()函数不将读入的字符回显在显示屏幕上, 而getche() 函数却将读入的字符回显到显示屏幕上。 例1:原创 2017-01-17 21:28:04 · 16863 阅读 · 0 评论 -
fopen中mode参数 r, w, a, r+, w+, a+ 具体区别(转)
r : 可读, 不可写, 必须存在, 可在任意位置读取, 文件指针自由移动w : 不可读, 可写, 可以不存在, 若存在则必会擦掉原有内容从头写, 文件指针无效a : 不可读, 可写, 可以不存在, 必不能修改原有内容, 只能在结尾追加写, 文件指针无效r+ : 可读可写, 必须存在, 可在任意位置读写, 读与写共用同一个指针w+ : 可读可写, 可以不存在, 必会擦掉原有内容从头写, 文件指针只对读有效 (写操作会将文件指针移动到文件尾)a+ : 可读可写, 可以不存在, 必不能修改原转载 2021-11-24 11:04:47 · 5273 阅读 · 0 评论 -
error C2065: “true”: 未声明的标识符
原因:C没有内置布尔类型。所以它不知道true是什么。解决:1、把true改成12、在C99中编译并包含<stdbool.h>参考:下面C语言代码错误是true,未声明标识符,这是为什么?怎么修改? #include <stdio_百度知道 (baidu.com)使用未声明的标识符'true' - Thinbug...原创 2021-07-06 11:23:00 · 3620 阅读 · 0 评论 -
在定义字符串时,常这样char szVar[n]其中的sz是什么的缩写?
s表示string,z表示zero,就是以NULL结尾的string参考:http://topic.okbase.net/201002/2010020209/3801954.html原创 2020-06-29 09:08:19 · 898 阅读 · 0 评论 -
fopen的工作原理(转)
FILE *fp;fp=fopen("filename.txt","w");首先检测filename.txt是否存在,如果不存在则在磁盘创建该文件,然后在内存开辟区域(应该是缓冲区)准备写该文件调用fclose时,将内存中的内容写入到磁盘中去 测试(filename.txt不存在):#include #include int main(){ FILE转载 2012-12-11 11:38:54 · 3953 阅读 · 1 评论 -
C++之char , signed char , unsigned char(转)
ANSI C 提供了3种字符类型,分别是char、signed char、unsigned char.而不是像short、int一样只有两种(int默认就是unsigned int).三者都占1个字节(1 byte),因此:signed char取值范围是 -128 到 127(有符号位)unsigned char 取值范围是 0 到 255这个大家都很清楚!!但是char 呢转载 2013-04-22 09:53:20 · 2444 阅读 · 0 评论 -
itoa()和atoi()/atol()的源码
/****atox.c - atoi and atol conversion** Copyright (c) 1989-1997, Microsoft Corporation. All rights reserved.**Purpose:* Converts a character string into an int or long.***********************转载 2013-07-02 10:38:01 · 1036 阅读 · 0 评论 -
用汇编来看C语言的简单实现(转)
好久没更新日志了,一是学习的时间实在有限.二是多是走马观花的看书.今天闲下来,写篇技术文章吧.反正无聊.先来复习几个相关的ASM指令.1.堆栈相关指令push : 把一个32位的操作数压入堆栈中.(操作导致esp被减4)pop : 相反,esp加4,一个数据出栈.sub : 减法.第一个参数是被减数所在的寄存器;第二个参数是减数(对应的还有add指令)a转载 2014-02-17 10:41:46 · 5818 阅读 · 0 评论 -
VS2008反汇编小解(转)
了解反汇编的一些小知识对于我们在开发软件时进行编程与调试大有好处,下面以VS2008环境下的VC++简单介绍一下反汇编的一些小东西!如果有些解释有问题的地方,希望大家能够指出。1、新建简单的VC控制台应用程序(对此熟悉的同学可以略过)A、打开Microsoft Visual Studio 2008,选择主菜单“File”B、选择子菜单“New”下面的“Project”,打开“New P转载 2014-02-20 13:37:38 · 1156 阅读 · 0 评论 -
CreateProcess在xp里调用nodejs
想用nodejs加https-server做一个服务端,最初在win7+Node.js 10.2.1使用CreateProcess可以启动成功。项目软件需要支持xp及以上操作系统,但nodejs在Node.js 6.0.0便不支持xp了,最初使用Node.js 5.12.0,发现老是CreateProcess老是调用失败,调了半天CreateProcess参数没有成功。后来换成Node.js ...原创 2018-10-23 23:31:52 · 399 阅读 · 0 评论 -
strtol溢出的解决办法
extern char* pszValue ;//strtol只能返回带符号的整数,如果pszValue是个无符号数,且值 > 0x7FFFFFFF,返回值为0x7FFFFFF ,即-1;int nValue = strtol(pszValue ,NULL,16);//可以通过如下的方式解决这个问题。int nValue = strtoul(pszValue ,NULL,16)...原创 2018-12-08 10:27:23 · 1861 阅读 · 0 评论 -
fopen 提前 EOF
转自:http://blog.youkuaiyun.com/megaboy/article/details/533333在windows操作系统中,大家在编写带有文件操作的程序时,有时候会遇到一种奇怪的现象,在对一个文件以文本方式进行读取的过程中,读到中途还没到文件末尾时feof()函数就意外地为真,这让人很惊讶,一时难以找到原因,实际上,这是ASCII码0x1A在作怪。运行下面程序:int ma转载 2012-12-03 15:16:12 · 1638 阅读 · 0 评论