linux 下获取当前工作路径的实例
获取工作路径这里介绍两种方法:
1.使用getcwd()函数。
头文件:#include <unistd.h>
定义函数:char * getcwd(char * buf, size_t size);
函数说明:getcwd()会将当前的工作目录绝对路径复制到参数buf 所指的内存空间,参数size 为buf 的空间大小
实例:
void getPath() { char pPath[256] = {0}; getcwd(buf, 256); printf("filePath: %s\n", pPath); }
主函数调用此函数运行结果:
filePath: /home/myTest
2.使用readlink()函数。
头文件:#include <unistd.h>
函数定义:int readlink(const char *path, char *buf, size_t bufsiz);
函数说明:此函数会将参数path的符号连接内容到参数buf所指的内存空间,返回的内容不是以NULL作字符串结尾,但会将字符串的字符数返回。若参数bufsiz小于符号连接的内容长度,过长的内容会被截断。成功返回buf长度,失败返回 -1.
实例:
void getPath() { char pPath[256] = {0}; int ret = -1; ret = readlink("/proc/self/exe", pPath, 256); pPath[ret] = "\0" printf("the file Path: %s\n", pPath); } int main() { getPath(); }
运行结果:
the file Path: /home/myTest/a.out
以上这篇linux 下获取当前工作路径的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
bash获取当前路径示例
bash获取脚本所在路径 复制代码 代码如下: #!/bin/bashCMD_PATH=`dirname $0`echo "current cmd path:$CMD_PATH"cd $CMD_PATHecho $PWD
-
Shell中获取脚本所在目录绝对路径的方法
要得到正在执行的程序/脚本自身所存放的绝对路径,在 PHP 里面可以用 dirname(realpath(__FILE__)) : C# 则有 System.Windows.Forms.Application.StartupPath : java 似乎没有什么比较直接的方法,只能利用 CodeSource 来间接获取 .而在 linux shell 脚本里面如果想得到当前脚本文件存放的绝对路径,也没有太现成的命令可以调用,不过可以通过下面的语句来获取: 复制代码 代码如下: baseDirFor
-
Linux中shell脚本获取当前工作目录的方法
如下: workdir=$(cd $(dirname $0); pwd) 步骤1 dirname $0,取得当前执行的脚本文件的父目录 步骤2 cd到父目录,即进入当前工作目录 步骤3 pwd显示当前工作目录 以上这篇Linux中shell脚本获取当前工作目录的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.
-
linux 下获取当前工作路径的实例
获取工作路径这里介绍两种方法: 1.使用getcwd()函数. 头文件:#include <unistd.h> 定义函数:char * getcwd(char * buf, size_t size); 函数说明:getcwd()会将当前的工作目录绝对路径复制到参数buf 所指的内存空间,参数size 为buf 的空间大小 实例: void getPath() { char pPath[256] = {0}; getcwd(buf, 256); printf("filePath: %s
-
linux C++ 获取文件绝对路径的实例代码
提供ftp服务时需要获取文件绝对路径,这里记录一下. #include <stdlib.h> #include <stdio.h> #include <limits.h> int main(){ const char *file_name = "filename"; char abs_path_buff[PATH_MAX]; //获取文件路径, 填充到abs_path_buff //realpath函数返回: null表示获取失败; 否则返回指向ab
-
C++ 设置和获取当前工作路径的实现代码
通常,你在服务程序中调用DLL,而DLL又会加载许多配置和文件,一般会出现DLL加载不到配置和文件,原因是你的服务程序被加载后,路径并不是你程序的所在目录,故DLL也不是,因此加载不了.解决办法,是在DLL的路径或服务程序中设计当前的工作路径. 主要函数为:SetCurrentDirectory: 设置当前工作路径实例如下: #include <iostream> #include <windows.h> #include <string> using namespac
-
Linux下动态链接库加载路径及搜索路径问题
引子 近日,服务器迁移后,偷懒未重新编译nginx的,直接./nginx启动,结果遇到如下问题: "error while loading shared libraries" 这是是因为需要的动态库不在动态链接器ld.so的搜索路径导致. ld.so 动态共享库搜索顺序 1.ELF可执行文件中动态段DT_RPATH指定:gcc加入链接参数"-Wl,-rpath"指定动态库搜索路径: 2.环境变量LD_LIBRARY_PATH指定路径: 3./etc/ld.so.ca
-
linux下获取文件的创建时间与实战教程
背景 有时候我们需要获取文件的创建时间. 例如: 我在研究 <xtrabackup 原理图>的时候,想通过观察确认 xtrabackup_log 是最早创建 并且是 最晚保存的文件.我们就需要知道 xtrabackup_logfile 这个文件的创建时间戳和修改时间戳. 复习: Linux关于文件的三个时间戳 Linux 的文件系统保存有三个时间戳,利用 stat 指令查看文件信息可以获取.他们分别是 ATime.MTime 和 CTime [root@192-168-199-198 back
-
Linux下编译安装php libevent扩展实例
原本想尝试一下PHP编写高性能网络服务,需要安装libevent扩展,没想到让人很费了点脑袋 先下载libevent扩展: http://pecl.php.net/package/libevent 解压后,开始编译 复制代码 代码如下: $ cd libevent-version $ /usr/local/php/bin/phpize $ ./configure --with-php-config=/usr/local/php/bin/php-config 结果马上报错了,错误显示为re2c版本
-
基于linux下获取时间函数的详解
//-------------------------------------------------------------//asctime(将时间和日期以字符串格式表示)#include<time.h>定义函数char * asctime(const struct tm * timeptr);函数说明asctime()将参数timeptr所指的tm结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果以字符串形态返回.此函数已经由时区转换成当地时间,字符串格式为:"We
-
linux中java获取路径的实例代码
linux中java获取路径怎么写? 在Unix/Linux中,路径的分隔采用正斜"/",比如"cd /home/java". 在java的代码开发中 \ 是代表转义字符. 相对路径和绝对路径 . 指的是当前目录 .. 指的是当前目录的上一级目录 ./book表示当前目录下的book文件夹 /book表示当前盘符下的book文件夹 Linux绝对路径:以root根目录 / 开始的路径 如 / 表示root根目录 下面,就是Linux中使用Java获取路径的一些操作:
-
实例详解Linux下的Make命令
前言 无论是在linux 还是在Unix环境 中,make都是一个非常重要的编译命令.不管是自己进行项目开发还是安装应用软件,我们都经常要用到make或make install.利用make工具,我们可以将大型的开发项目分解成为多个更易于管理的模块,对于一个包括几百个源文件的应用程序,使用make和 makefile工具就可以简洁明快地理顺各个源文件之间纷繁复杂的相互关系.而且如此多的源文件,如果每次都要键入gcc命令进行编译的话,那对程序员 来说简直就是一场灾难.而make工具则可自动完成编译
-
详解linux下make命令的使用方法
本文我们将用一些实例来讨论 make 命令背后的工作机制. Make 如何工作的 对于不知道背后机理的人来说,make 命令像命令行参数一样接收目标.这些目标通常存放在以 "Makefile" 来命名的特殊文件中,同时文件也包含与目标相对应的操作.更多信息,阅读关于 Makefiles 如何工作的系列文章. 当 make 命令第一次执行时,它扫描 Makefile 找到目标以及其依赖.如果这些依赖自身也是目标,继续为这些依赖扫描 Makefile 建立其依赖关系,然后编译它们.一旦主依
随机推荐
- java使用JDBC动态创建数据表及SQL预处理的方法
- 打造安全的Windows 2003服务器
- Android模仿美团顶部的滑动菜单实例代码
- MySQL 5.7.18 release版安装指南(含有bin文件版本)
- 微信小程序获取微信运动步数的实例代码
- python中split方法用法分析
- php设计模式之观察者模式的应用详解
- C# 注册表 操作实现代码
- JavaScript注册时密码强度校验代码
- Node学习记录之cluster模块
- sql表连接查询使用方法(sql多表连接查询)
- nginx的FastDFS分布式存储模块测试方法
- jQuery实现iframe父窗体和子窗体的相互调用
- 收集整理的http/1.1 500 server error错误的解决方法
- Android开发使用UncaughtExceptionHandler捕获全局异常
- Android控件RecyclerView实现混排效果仿网易云音乐
- 详解Mysql数据库date, datetime类型设置0000-00-00默认值(default)报错问题
- PHP封装的数据库模型Model类完整示例【基于PDO】
- vue升级之路之vue-router的使用教程
- iOS模仿QQ侧边栏的实现方法实例