如何使用Process Class执行命令需要在MacOS中输入密码

时间:2019-06-13 13:51:58

标签: swift macos cocoa

我想按流程类执行以下命令:

SQLHENV     hEnv = NULL;
SQLHDBC     hDbc = NULL;
char        inString[512];
char        outString[512];
SQLSMALLINT outLength;

SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &hEnv);
SQLSetEnvAttr(hEnv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0);
SQLAllocHandle(SQL_HANDLE_DBC, hEnv, &hDbc);

outLength = 512;
memset(outString, 0, 512);
strcpy(inString, "Driver={ODBC Driver 17 for SQL Server};Server=MYSERVER\\MYINSTANCE;Database=MYDB;UID=sa;PWD=MYPASSWORD");
SQLDriverConnect(hDbc, NULL, inString, (SQLSMALLINT)strlen(inString), outString, 512, &outLength, SQL_DRIVER_NOPROMPT);


SQLDisconnect(hDbc);
SQLFreeHandle(SQL_HANDLE_DBC, hDbc);

SQLFreeHandle(SQL_HANDLE_ENV, hEnv);

但是在下面出现错误: sudo:不存在tty且未指定askpass程序

因此执行删除命令之前可能需要输入密码。

1 个答案:

答案 0 :(得分:0)

我通过使用“ STPrivilegedTask”找到了解决方案,该工具是一种获得用户授权的工具。 我认为使用FileManager API也是一个好主意