
Linux环境编程
空腹熊猫
普通后台开发,喜欢看源码,对机器学习深度学习感兴趣
展开
-
Linux 编程问题:warning: incompatible implicit declaration of built-in function
学习Linux C编程的时候,编译如下简单代码:int main(){ printf("num:%d\n", 1);}编译成功但是有警告:warning: incompatible implicit declaration of built-in function ‘printf’ [enabled by default]网上找原因,是缺少了头文件#include...原创 2019-01-10 16:49:07 · 4017 阅读 · 0 评论 -
Linux环境编程——getopt()函数用法
函数原型#include <unistd.h>extern char *optarg;extern int optind;extern int optopt;extern int opterr;extern int optreset;int getopt(int argc, char * const *argv, const char *optstring);函数...原创 2019-01-21 21:04:12 · 228 阅读 · 0 评论 -
Linux 环境编程之进程控制:fork 与 vfork
函数定义#include <unistd.h>pid_t fork(void);pid_t vfork(void);fork作用:产生一个子进程。返回:有两次,分别给父进程和子进程。子进程的返回值是0,父进程的返回值是子进程的进程ID。给父进程返回子进程ID理由:Linux没有函数可以获取所有子进程的ID(需要及时返回)给子进程返回0理由:进程只有一个父进...原创 2019-01-18 20:03:56 · 268 阅读 · 0 评论 -
Linux 环境编程之文件目录:函数stat、fstat、fstatat、lstat
几个函数返回文件相关的信息结构#include<sys/stat.h>int stat(const char *pathname, struct stat *buf);int fstat(int fd, struct stat *buf);int lstat (const char *pathname, struct stat *buf);int fstatat(int ...原创 2019-01-11 20:38:04 · 323 阅读 · 0 评论 -
Linux 环境编程之文件I/O:文件读写
函数接口#include<unistd.h>ssize_t read(int fd, void *buf, size_t nbytes);ssize_t write(int fd, const void *buf, size_t nbytes);read使用:read成功,返回实际读取到的字节数(可能小于指定的),失败返回-1; 读普通文件时,若已到达文件尾端,则返...原创 2019-01-11 19:27:01 · 415 阅读 · 0 评论 -
Linux 环境编程之文件I/O:文件定位 lseek
Linux下每个打开的文件,都关联着一个“文件偏移量”,表示距离文件开始处偏移的字节数,通常是非负整数。读、写文件都从该偏移量开始,偏移量随读、写的字节数增加。默认情况,除非用O_APPEND 打开,初始文件偏移量为0. 函数接口:#include<unistd.h>off_t lseek(int fd, off_t offset, int whence);...原创 2019-01-11 16:04:25 · 245 阅读 · 0 评论 -
Linux 环境编程之文件I/O:文件创建、打开、关闭
文件打开用open或openat可打开或创建文件#include <fcntl.h>int open( const char *path, int flags,.../*mode_t mode*/);int openat( int fd, const char *path, int flags,.../*mode_t mode*/);参数:path:文件路径(带文...原创 2019-01-10 21:22:08 · 605 阅读 · 0 评论 -
Linux C编程问题:symbol lookup error: xxx undefined symbol xxx
程序代码在编译的时候没问题,但是在运行的时候报错:./bin: symbol lookup error: ./bin: undefined symbol: xxx百度了一下,貌似是程序运行时使用的动态库和编译时makefile 指定链接的动态库不同所致。用ldd查看文件使用到的库,有很多,但是仔细看 undefined symbol: 后的一串文字:_ZN10xxx8xxxEPKc...原创 2018-12-21 17:31:52 · 34203 阅读 · 0 评论 -
Linux C编程问题:symbol lookup error ……undefined symbol
Linux 下执行程序,报错:./process: symbol lookup error: ./process: undefined symbol: ……貌似是程序运行时加载的动态库,和makefile文件里面指定的不一样1、查看可执行文件依赖的库用ldd命令,详见:linux中的ldd命令简介2、确保makefile里面指定的和运行时使用的一致makefile 在编译...原创 2018-12-20 21:07:24 · 6908 阅读 · 0 评论 -
Linux C编程问题:"error while loading shared libraries: xxx.so.x"
在Linux环境下运行可执行文件报错: error while loading shared libraries: libxxx.so: cannot open shared object file: No such file or directory程序想加载动态库但是找不到,原因有以下两种情况:共享库确实没安装,或版本不对 共享库已安装,但是默认搜索路径中找不到对第一种情况,...原创 2018-12-20 10:53:58 · 461 阅读 · 0 评论 -
Linux C编程问题:ldd 提示not found
对某个可执行文件使用ldd命令查看库的链接情况:ldd命令某些库后面显示not found,总结网上看到的和自己遇到的,可能有以下几种原因:1、目标文件与依赖的库文件位数(32/64)冲突,参考: Stack Overflow2、共享库路径没有指定第二种情况,一般执行文件的时候会报错:./test: error while loading shared libraries: ...原创 2018-12-20 17:59:02 · 15658 阅读 · 0 评论 -
Linux 环境编程之man 命令区分函数和Linux命令
在Linux下想查看shutdown 函数的使用方法,于是执行:$ man shutdown但出来的是shutdown 的使用方法:shutdown(8) shutdown(8)NAME shutdown - bring the system down...原创 2019-01-23 15:45:54 · 283 阅读 · 0 评论