在Sandbox中呼叫系統工具的問題
在sandbox中要呼叫system的工具,用system函式,NSTask方式有的成功,有的不成功。
成功的例子有:
/usr/sbin/screencapture
/usr/bin/stat
不成功的例子有:
/usr/bin/qlmanage
/usr/bin/shasum
/usr/bin/hexdump
/sbin/ping
在網上找到一下答案
Sandbox and running /usr/bin/purge using system()
in an app that is on the Mac App Store, I was doing the following:
system("/usr/bin/nice -n 20 /usr/bin/purge &> /dev/null &" );
This worked fine, but now I'm trying to submit a new version, and they're forcing me to enable the Sandbox. However, with the sandbox, that call fails, giving messages like this in the Console:
7/20/1312:58:59.000 AM kernel[0]:Sandbox: sh(28537) deny file-read-data /dev/ttys000
7/20/1312:58:59.968 AM purge[28538 ]: bootstrap_look_up():Permission denied
7/20/1312:59:00.000 AM kernel[0]:Sandbox: purge(28538) deny mach-lookup com.apple.appleprofilepolicyd
7/20/1312:59:00.521 AM purge[28538]:<CPDevice.m:3813>Unable to create new counter client.7/20/1312:59:00.523 AM purge[28538]:<CPOSX.m:1188>Unable to get user client so as to poke the kernel .7/20/1312:59:00.000 AM kernel[0]:Sandbox: purge(28538) deny iokit-open ApplePerformanceCounterManagerUserClient7/20/1312:59:00.000 AM kernel[0]:Sandbox: purge(28538) deny iokit-open AppleProfileUtilitiesUserClient7/20/1312:59:00.000 AM kernel[0]:AppleProfileUtilitiesUserClient: bad busy count (0,-1)7/20/1312:59:00.000 AM kernel[0]:Backtrace0xffffff802d22d4d20xffffff802d231fc90xffffff802ceb31370000
Is there any way to work around this?
相關推薦
在Sandbox中呼叫系統工具的問題
在sandbox中要呼叫system的工具,用system函式,NSTask方式有的成功,有的不成功。 成功的例子有: /usr/sbin/screencapture /usr/bin/stat 不成功的例子有: /usr/bin/qlmanage /usr/bin/shasum /us
kernel space 中呼叫系統呼叫對地址空間檢查
在核心中呼叫系統呼叫,需要使用get_fs,set_fs來對其保護,因為這些函式會檢查引數地址是不是 使用者空間的,但是很顯然,我們是在核心空間中呼叫這些系統呼叫。 #define get_ds() (KERNEL_DS) 可以看到這裡的get_fs 直接返回的是當前程序的地址限制,使用者程序和
C語言中呼叫系統命令(system popen...)
1、system(執行shell 命令) 相關函式 fork,execve,waitpid,popen 表頭檔案 #include<stdlib.h> 定義函式 int system(const char * string); 函式說明 system()會呼
zabbix--觸發器中呼叫系統內部函式
引數 描述 Name 觸發器名稱。這個名稱可能包含支援的macros:{HOST.HOST}, {HOST.NAME}, {HOST.CONN}, {HOST.DNS}, {HOST.IP}, {ITEM.VALU
18、android中呼叫系統自帶檔案管理器並返回選中檔案的路徑
思路: 通過Android API呼叫系統自帶的檔案瀏覽器選取檔案獲得URI,然後將URI轉換成file,從而得到file。 import android.annotation.SuppressLint;import android.app.Activity;impo
awk中呼叫系統命令批量處理
工作中經常遇到在輸入一堆檔名的條件下,將其移動或者刪除或者複製。由於輸入是個檔名的集合,而不是單個檔案,因此不能直接用cp或者mv命令,可以通過awk的逐行處理的功能來處理這種情況。以下是一個例子: $ grep -r 'TE' * | cut -d " " -f3 | a
關於android中呼叫系統拍照,返回圖片是旋轉90度..
由於專案的需要,沒有自定義拍照功能,僅僅呼叫了系統的拍照程式..但是出現了一個問題,就是拍照完成顯示圖片居然是被旋轉的圖片....解決辦法:/** * 獲取圖片的旋轉角度,有些系統把拍照的圖片旋轉了,有的沒有旋轉 */ int degree
在Android系統中呼叫系統前置攝像頭
從Android 2.3 Gingerbread開始,原生支援前置攝像頭。下面我們看看如何在程式裡來呼叫前置的攝像頭。 第一種方式是採用MediaStore,呼叫系統原生的相機。 Intent intent = new Intent(MediaStore.
android開發中呼叫系統自帶的檔案選擇器遇到的一些問題
1.呼叫系統的檔案瀏覽器然後進入檔案管理器選擇文字檔案後,直接回到檔案瀏覽器頁面造成文字檔案無法選擇 開始時候使用的方法: Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("*/*"
BCP工具的使用以及C++,SQL server資料庫中呼叫命令列的方法
BCP工具使用: BCP是由SYBASE公司提供的,專門用於資料庫表一級資料備份的工具。 主要引數如下: 基本用法: 遠端地址1的資料庫表student 匯出到本地(遠端ip1(10.189.1.1) ): bcp run.dbo.student out "c:\student
Python中呼叫自然語言處理工具HanLP手記
HanLP方法封裝類: 1. # -*- coding:utf-8 -*- 2. # Filename: main.py 3. 4.from jpype import * 5. 5.startJVM(getDefaultJVMPath(), "-Djava.class.path=C:\h
通過qt在linux系統下對c++進行封裝獲得so庫並在在其他程式中呼叫共享庫
在qt下封裝.so 開啟qt新建專案,選擇這個 2、生成了兩個.h檔案和一個main.c檔案,這裡參照.h檔案構建標頭檔案,宣告函式變數等,也就是展現給客戶使用的部分。 之後在.c檔案中對自己的函式進行定義 點編譯,就可以了,可以看到在專案資料夾中生成了.s
C++呼叫系統中應用程式的方法的整理總結
一、三個SDK函式: WinExec,ShellExecute ,CreateProcess可以實現呼叫其他程式的要求,其中以WinExec最為簡單,ShellExecute比WinExec靈活一些,CreateProcess最為複雜。WinExec 兩個引數,前一個指定路徑,後一個指
Mac筆記本中是用Idea開發工具在Java專案中呼叫python指令碼遇到的環境變數問題解決
問題描述: mac筆記本本身會自帶幾個python版本,比如python2.7版本,我沒有改動mac預設的python版本,只是安裝了python3.7版本。 使用Pycharm開發Python專案沒有遇到什麼問題。但是在java專案中呼叫py指令碼的話,就有問題了。我的專案需要將Pycharm開發好的p
Spring專案普通工具類中呼叫service介面
WebApplicationContext context = ContextLoader.getCurrentWebApplicationContext(); IControlService controlService= (IControlService) context
Android如何查詢應用中呼叫的系統資源
在專案中查詢命令: grep "@android:drawable" -rni * --exclude-dir="*svn*" grep "@\*android:drawable" -rni * --exclude-dir="*svn*" grep "android.R"
最近在ArcGIS Engine開發中關於呼叫gp工具過程出現COM 元件的呼叫返回了錯誤 HRESULT E_FAIL 錯誤的解決方法 和 學習oracle中遇到的一些問題總結
首先說下AE開發中關於gp這一塊的東西,gp是一個很方便的工具,利用gp可以在程式碼中實現ArcMap工具箱中的大部分內容,關於gp工具的使用我就不說了,這些大部分都可以在網上找到,我要說的是gp使用過程中遇到的問題: 一般gp的報錯為 對 COM 元件的呼叫返回了錯誤 H
python中呼叫linux系統命令容易遇到的坑+(os.system,os.popen,subprocess.Popen區別)
本人在編寫監控系統程序狀態的指令碼的時候,因為要涉及到呼叫系統命令檢視linux系統程序pid以及時間等,所以使用到了os.popen().read()來獲取返回值 然而呼叫命令發現無法獲取到任何返回值,而直接在shell中執行實際上是存在程序的 原因是os.popen(
android 呼叫系統照相機拍照後儲存到系統相簿,在系統圖庫中能看到
需求: 呼叫系統照相機進行拍照,並且儲存到系統相簿,呼叫系統相簿的時候能看到 系統相簿的路徑:String cameraPath= Environment.getExternalStorageDi
如何在自己的App中呼叫Android系統自帶的安裝/解除安裝程式
AppUtils裡面寫了如何安裝和解除安裝apk(這段程式碼出自這裡:點選開啟連結~),這裡的安裝和解除安裝呼叫的是Android本身的一個安裝解除安裝,所以可能頁面不會太優雅,並不符合商業App的期望,如果要做到更優雅的實現,就要用到靜默安裝/解除安裝,這個可以參照網上教