2012-10-20 60 views
0

所以你可以在這個link中看到你有一個pwm/sys/class/pwm /。程序中的C/sys/class/pwm init

所以我現在正確的數據放入適當的文件,事情運作良好。

這不是問題。問題是你需要在/ sys/class/pwm/{port}/request文件變爲活動狀態之前對其執行「cat」操作。所以如果你重新啓動它將無法工作,你必須重新啓動它。

我試圖只是fopen(「〜請求」,「R」)希望它會工作,但事實並非如此。也打開它爲「W」。我也試過做一個exec(),但那不起作用,無論如何笨重。我不想做出所需的假設。

這是我的execv()代碼無論如何。

char *request[1]; 
request[0] = pwmbus; 
execv("/bin/cat",request); 

捕捉文件最優雅的方式是什麼?我不需要它輸出的信息。它只是初始化sysfs。否則,我將被卡住,不得不手動執行此操作或始終腳本化。

cat /sys/class/pwm/gpio_pwm.0:0/request 
sysfs 719 
+1

也許'INT FD =打開( 「/ SYS /班/ PWM」,O_RDONLY); char buf [1];讀(fd,buf,1);關閉(fd);' – 2012-10-20 14:51:56

+0

@napierzaza你在跟誰說話?這個問題是否應該只被理解爲一個特定的人? – bubble

+0

@ H2CO3謝謝我沒有嘗試過。作品。 – napierzaza

回答

1

您可以從文件中讀取一個字節:

int fd = open("/sys/class/pwm", O_RDONLY); 
char buf[1]; 
read(fd, buf, 1); 
close(fd);