
UC编程
romancegirls
这个作者很懒,什么都没留下…
展开
-
关于环境变量
#include #include #include void printenv (void) { printf ("---- 环境变量 ----\n"); extern char** environ; char** env; for (env = environ; env && *env; ++env) printf ("%s\n", *env); printf ("----原创 2014-05-13 10:57:50 · 464 阅读 · 0 评论 -
通过errno表示错误原因
#include #include #include int main (void) { FILE* fp = fopen ("none", "r"); if (! fp) { printf ("%d\n", errno); printf ("%s\n", strerror (errno)); perror ("打开文件失败"); printf ("打开文件失败了,因为%原创 2014-05-13 11:28:03 · 513 阅读 · 0 评论 -
不能根据errno为0与否作为判断错误的依据
所有的错误的errno都非零,但是不能根据errno为0与否作为判断错误的依据。大多数函数在成功的情况下并不会将errno置为0。原创 2014-05-13 11:33:09 · 1745 阅读 · 0 评论 -
UC从错误处理之-通过函数返回值表示错误
#include #include /* 获取文件大小,成功返回文件字节数(>=0), 失败返回-1 */long fsize (const char* path) { FILE* fp = fopen (path, "r"); if (! fp) return -1; fseek (fp, 0, SEEK_END); long size = ftell (fp); fc原创 2014-05-13 10:53:28 · 534 阅读 · 0 评论 -
共享库的使用
#include #include typedef int (*PFUNC_CALC) (int, int);typedef void (*PFUNC_SHOW) (int, char, int, int);int main (void) { void* handle = dlopen ("shared/libmath.so", RTLD_NOW); // if (! handl原创 2014-05-13 11:37:18 · 549 阅读 · 0 评论 -
进程的内存映像(高地址到底地址)
#include #include #include const int const_global = 10; // 常全局变量int init_global = 10; // 初始化全局变量int uninit_global; // 未初始化全局变量int main (int argc, char* argv[]) { const static int const_static =原创 2014-05-13 11:38:50 · 676 阅读 · 0 评论 -
UC编程基础
一、共享库-fpic:编译选项,位置为无关码-shared:链接选项,共享库LIBRARY_PATH : 链接器使用的库路径环境变量LD_LIBRARY_PATH : 加载器使用的库路径环境变量静态加载:在链接阶段链接共享库gcc main.c -lmath -L.每次启动a.out程序时,加载器都会加载所需要的共享库动态加载:在运行阶段通过代码动态地加载共享库,并原创 2014-05-13 10:50:17 · 1414 阅读 · 0 评论 -
对错误的预先防范
通过预先对错误的猜测做出原创 2014-05-13 11:30:37 · 516 阅读 · 0 评论