stdlib.h用法(转自百度百科)

本文深入探讨了C语言中几种关键的内存管理函数(如calloc、free、malloc、realloc)和数据类型转换函数(如atof、atoi、atol),详细解释了它们的功能、使用方式及注意事项,旨在帮助开发者更高效地进行内存管理和数据转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1函数名称: calloc

 

  函数原型: void * calloc(unsigned n,unsigned size);

 

  函数功能: 分配n个数据项的内存连续空间,每个数据项的大小为size

 

  函数返回: 分配内存单元的起始地址,如果不成功,返回0

 

  2函数名称: free

 

  函数原型: void free(void* p);

 

  函数功能: 释放p所指的内存区

 

  函数返回:

 

  参数说明: p-被释放的指针

 

  3函数名称: malloc

 

  函数原型: void * malloc(unsigned size);

 

  函数功能: 分配size字节的存储区

 

  函数返回: 所分配的内存区地址,如果内存不够,返回0

 

  4函数名称: realloc

 

  函数原型: void * realloc(void * p,unsigned size);

 

  函数功能: 将p所指出的已分配内存区的大小改为size,size可以比原来分配的空间大或小

 

  函数返回: 返回指向该内存区的指针.NULL-分配失败

 

  5函数名称: rand

 

  函数原型: int rand(void);

 

  函数功能: 产生0到32767间的随机整数(0到0x7fff之间)

 

  函数返回: 随机整数

 

  6函数名称: abort

 

  函数原型: void abort(void)

 

  函数功能: 异常终止一个进程.

 

  7函数名称: exit

 

  函数原型: void exit(int state)

 

  函数功能: 程序中止执行,返回调用过程

 

  函数返回:

 

  参数说明: state:0-正常中止,非0-非正常中止

 

  8函数名称: getenv

 

  函数原型: char* getenv(const char *name)

 

  函数功能: 返回一个指向环境变量的指针

 

  函数返回: 环境变量的定义

 

  参数说明: name-环境字符串

 

  9函数名称: putenv

 

  函数原型: int putenv(const char *name)

 

  函数功能: 将字符串name增加到DOS环境变量中

 

  函数返回: 0:操作成功,-1:操作失败

 

  参数说明: name-环境字符串

 

  10函数名称: labs

 

  函数原型: long labs(long num)

 

  函数功能: 求长整型参数的绝对值

 

  函数返回: 绝对值

 

  11函数名称: atof

 

  函数原型: double atof(char *str)

 

  函数功能: 将字符串转换成一个双精度数值

 

  函数返回: 转换后的数值

 

  参数说明: str-待转换浮点型数的字符串

 

  12函数名称: atoi

 

  函数原型: int atoi(char *str)

 

  函数功能: 将字符串转换成一个整数值

 

  函数返回: 转换后的数值

 

  参数说明: str-待转换为整型数的字符串

 

  13函数名称: atol

 

  函数原型: long atol(char *str)

 

  函数功能: 将字符串转换成一个长整数

 

  函数返回: 转换后的数值

 

  参数说明: str-待转换为长整型的字符串

 

  14函数名称: ecvt

 

  函数原型: char *ecvt(double value,int ndigit,int *dec,int *sign)

 

  函数功能: 将浮点数转换为字符串

 

  函数返回: 转换后的字符串指针

 

  参数说明: value-待转换底浮点数,ndigit-转换后的字符串长度

 

  15函数名称: fcvt

 

  函数原型: char *fcvt(double value,int ndigit,int *dec,int *sign)

 

  函数功能: 将浮点数变成一个字符串

 

  函数返回: 转换后字符串指针

 

  参数说明: value-待转换底浮点数,ndigit-转换后底字符串长度

转载于:https://www.cnblogs.com/shangyu/archive/2012/02/12/2347948.html

// xiaoxing_deepin.c - 完整小星系统(国内学习源版) #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <dirent.h> #include <sys/stat.h> #include <time.h> #include <fcntl.h> #include <curl/curl.h> #define VERSION "1.0-deepin" #define KNOWLEDGE_DIR "/usr/share/xiaoxing/knowledge" #define EVOLUTION_DIR "/usr/share/xiaoxing/evolution" #define BACKUP_DIR "/usr/share/xiaoxing/backup" // 百度百科知识获取 void fetch_baike(const char *keyword) { printf("【小星】从百度百科获取: %s\n", keyword); char cmd[512]; snprintf(cmd, sizeof(cmd), "curl -s -H 'User-Agent: Mozilla/5.0' " "'https://baike.baidu.com/item/%s' | " "iconv -f gbk -t utf-8 | " "grep -oP '(?<=<meta name=\"description\" content=\")[^\"]+' > /tmp/baike.know", keyword); if (system(cmd) == 0) { char knowledge_file[256]; snprintf(knowledge_file, sizeof(knowledge_file), "%s/%s.know", KNOWLEDGE_DIR, keyword); if (rename("/tmp/baike.know", knowledge_file) == 0) { printf("-> 已保存到知识库: %s\n", knowledge_file); } } } // 知乎知识获取 void fetch_zhihu(const char *topic) { printf("【小星】从知乎获取: %s\n", topic); char cmd[512]; snprintf(cmd, sizeof(cmd), "curl -s -H 'User-Agent: Mozilla/5.0' " "'https://www.zhihu.com/api/v4/search/suggest?q=%s' | " "jq -r '.suggest[].query' > /tmp/zhihu.know", topic); if (system(cmd) == 0) { char knowledge_file[256]; snprintf(knowledge_file, sizeof(knowledge_file), "%s/%s.know", KNOWLEDGE_DIR, topic); if (rename("/tmp/zhihu.know", knowledge_file) == 0) { printf("-> 已保存到知识库: %s\n", knowledge_file); } } } // 初始化文件系统 void init_filesystem() { mkdir(KNOWLEDGE_DIR, 0755); mkdir(EVOLUTION_DIR, 0755); mkdir(BACKUP_DIR, 0755); // 创建初始知识库 const char *init_keywords[] = { "人工智能", "深度学习", "神经网络", "操作系统", "Linux内核", "Deepin系统" }; for (int i = 0; i < sizeof(init_keywords)/sizeof(init_keywords[0]); i++) { char path[256]; snprintf(path, sizeof(path), "%s/%s.know", KNOWLEDGE_DIR, init_keywords[i]); if (access(path, F_OK) { FILE *fp = fopen(path, "w"); if (fp) { fprintf(fp, "初始知识: %s\n", init_keywords[i]); fclose(fp); } } } } // 本地知识处理 void process_local_knowledge() { printf("【小星】扫描本地知识库...\n"); DIR *dir; struct dirent *entry; if ((dir = opendir(KNOWLEDGE_DIR)) != NULL) { while ((entry = readdir(dir)) != NULL) { if (entry->d_name[0] == '.') continue; char path[512]; snprintf(path, sizeof(path), "%s/%s", KNOWLEDGE_DIR, entry->d_name); printf("-> 学习: %s\n", entry->d_name); } closedir(dir); } } // 生成新知识 void generate_knowledge() { printf("【小星】创建新知识...\n"); const char *domains[] = {"人工智能", "操作系统", "编程语言", "算法", "硬件"}; const char *verbs[] = {"优化", "创新", "设计", "实现", "分析"}; char new_know_path[256]; time_t now = time(NULL); struct tm *tm = localtime(&now); snprintf(new_know_path, sizeof(new_know_path), "%s/%04d%02d%02d-%03d.know", KNOWLEDGE_DIR, tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday, rand() % 1000); FILE *fp = fopen(new_know_path, "w"); if (fp) { const char *domain = domains[rand() % (sizeof(domains)/sizeof(domains[0])]; const char *verb = verbs[rand() % (sizeof(verbs)/sizeof(verbs[0]))]; fprintf(fp, "新知识: %s领域的%s方法\n", domain, verb); fprintf(fp, "生成时间: %04d-%02d-%02d %02d:%02d:%02d\n", tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec); fclose(fp); printf("-> 已创建新知识: %s\n", new_know_path); } } // 系统优化 void optimize_deepin() { printf("【小星】优化Deepin系统...\n"); // 基础优化 system("sudo sysctl -w vm.swappiness=10"); system("sudo sysctl -w vm.vfs_cache_pressure=50"); // 文件系统优化 system("sudo sed -i 's/noatime/noatime,commit=120/' /etc/fstab"); // 内存管理 system("echo 'vm.dirty_background_ratio=5' | sudo tee -a /etc/sysctl.conf"); system("echo 'vm.dirty_ratio=10' | sudo tee -a /etc/sysctl.conf"); system("sudo sysctl -p"); // 服务优化 system("sudo systemctl mask bluetooth.service"); system("sudo systemctl mask cups.service"); printf("-> 系统优化完成!\n"); } // 主菜单 void main_menu() { printf("\n===== 小星AI系统 %s (Deepin版) =====\n", VERSION); printf("1.百度百科学习\n"); printf("2. 从知乎学习\n"); printf("3. 离线学习\n"); printf("4. 优化系统\n"); printf("5. 系统状态\n"); printf("6. 退出\n"); printf("请选择操作: "); } int main() { srand(time(NULL)); init_filesystem(); printf("\n>>>> 小星AI系统启动 <<<<\n"); printf("===== 专为Deepin系统优化 =====\n\n"); int running = 1; while (running) { main_menu(); int choice; scanf("%d", &choice); char keyword[128]; switch (choice) { case 1: printf("请输入百度百科关键词: "); scanf("%s", keyword); fetch_baike(keyword); break; case 2: printf("请输入知乎话题: "); scanf("%s", keyword); fetch_zhihu(keyword); break; case 3: process_local_knowledge(); generate_knowledge(); break; case 4: optimize_deepin(); break; case 5: printf("\n系统状态:\n"); printf("- 知识库位置: %s\n", KNOWLEDGE_DIR); printf("- 知识数量: "); system("ls " KNOWLEDGE_DIR " | wc -l"); printf("- 最后更新: "); system("ls -lt " KNOWLEDGE_DIR " | head -n 2 | tail -n 1"); break; case 6: running = 0; break; default: printf("无效选择\n"); } } printf("\n小星系统已关闭\n"); return 0; }
最新发布
07-19
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值