C编程getcwd变量操作
C programming getcwd variable manipulation
基本上我需要一个 if 语句,其响应取决于当前工作目录。
我已经对该主题进行了一些研究,我相信 getcwd()
函数正是我要寻找的,但我不知道如何在 if 语句中与它交互。
我是 C 的新手,我正在制作的程序需要位于桌面上(顺便说一句,它是一个 UNIX 系统)才能正确 运行 并且 if 语句需要确定它是否是是否位于所述桌面上。
您需要先将 CWD 存储在字符串中:
char *cwd;
cwd = getcwd(NULL, 0);
if(cwd == NULL) {
// error
return -1;
}
if(strcmp("/whatever", cwd) == 0) {
// same folder
}
free(cwd);
下面的代码对我有用 ubuntu
-
#include <stdlib.h>
#include <unistd.h>
#include <limits.h>
int main( void ){
char* cwd;
char buff[PATH_MAX + 1];
cwd = getcwd( buff, PATH_MAX + 1 );
if( cwd != NULL ) {
printf( "My working directory is %s.\n", cwd );
if(strcmp("/home/razib/Desktop", cwd) == 0) {
printf("I'm in Desktop now\n");
}
}
return EXIT_SUCCESS;
}
这里你要提供getcwd()
方法一个buff[]
。 buff[]
可以用大小 PATH_MAX+1
声明。 PATH_MAX
可以在 limits.h
找到。
希望对您有所帮助。
非常感谢。
基本上我需要一个 if 语句,其响应取决于当前工作目录。
我已经对该主题进行了一些研究,我相信 getcwd()
函数正是我要寻找的,但我不知道如何在 if 语句中与它交互。
我是 C 的新手,我正在制作的程序需要位于桌面上(顺便说一句,它是一个 UNIX 系统)才能正确 运行 并且 if 语句需要确定它是否是是否位于所述桌面上。
您需要先将 CWD 存储在字符串中:
char *cwd;
cwd = getcwd(NULL, 0);
if(cwd == NULL) {
// error
return -1;
}
if(strcmp("/whatever", cwd) == 0) {
// same folder
}
free(cwd);
下面的代码对我有用 ubuntu
-
#include <stdlib.h>
#include <unistd.h>
#include <limits.h>
int main( void ){
char* cwd;
char buff[PATH_MAX + 1];
cwd = getcwd( buff, PATH_MAX + 1 );
if( cwd != NULL ) {
printf( "My working directory is %s.\n", cwd );
if(strcmp("/home/razib/Desktop", cwd) == 0) {
printf("I'm in Desktop now\n");
}
}
return EXIT_SUCCESS;
}
这里你要提供getcwd()
方法一个buff[]
。 buff[]
可以用大小 PATH_MAX+1
声明。 PATH_MAX
可以在 limits.h
找到。
希望对您有所帮助。
非常感谢。