Sponsored Content
Top Forums Programming A weird problem with POSIX function Post 302556185 by NH2 on Saturday 17th of September 2011 04:09:25 AM
Old 09-17-2011
Hi!

Quote:
Originally Posted by bus147
Hi all,

Sorry for the title because I didn't find a proper name for it. My question is about POSIX functions, such as timer_create(), mq_open() and pthread_create().

[...]

If I put the above function in main.c, there will have no problem. The queue is successfully created. But if I put in a file, let say foo.c. This file is compiled into libFOO.a and linked with main.c. Then I got the following error: errno(2: No such file or directory)

The other POSIX functions are also same if put in libFOO.a, for example, timer_create() failed with "Invalid argument" errro, pthread_create() succeeds but it is never run.

Is there any difference between running in main.c and foo.c? If you ever experienced such problem then please give me some hints

Thank you very much
Strange. Can you check if the following works on your platform:

Code:
/* foo.c */
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>

#include "foo.h" 

static pthread_t tid;

void* my_thread(void* ignore)
{
   int i;
   printf("Hello from thread\n");
   for (i=0; i<10; i++) {
      printf ("%d ", i); 
      fflush(stdout);
      sleep(1);
   }
}

void init(void)
{
   int rc;
   
   rc = pthread_create(&tid, NULL, my_thread, NULL);
   if (rc!=0) {
      fprintf(stderr,"pthread_create failed: %s (%d)\n", strerror(rc), rc);
      exit(1);
   }
}

Code:
/* foo.h */
#ifndef __FOO_H_
#define __FOO_H_
void init(void);
#endif

Code:
//myprog.c
#include <unistd.h>
#include "foo.h"

int
main()
{
   int val; 
   init();
   sleep(6);
}

Compile as follows:
Code:
cc -c foo.c
ar rcs libfoo.a foo.o
cc -pthread -static myprog.c -o myprog -L. -lfoo

If everything works as expected, you should see the following output:
Code:
Hello from thread
0 1 2 3 4 5

/Lew
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Weird Problem???

I have a problem I don't understand... I am trying to declare a variable, and then output the results of that variable, couldn't be simpler #!/bin/ksh VAR='Oranges' if then echo "Found Lemons" elif then echo "Found Oranges" fi The output shouold clearly be "Found Oranges", but... (2 Replies)
Discussion started by: danhodges99
2 Replies

2. Solaris

Weird crontab problem

Greetings To All! I am running Solaris 10 in a sparc environment. Here is the deal: In /var/spool/cron/crontabs, there is a cron user named "sys". If I do a crontab -l sys, it returns: # 0 * * * 0-6 /usr/lib/sa/sa1 # 20,40 8-17 * * 1-5 /usr/lib/sa/sa1 # 5 18 * * 1-5 /usr/lib/sa/sa2... (8 Replies)
Discussion started by: RobSand
8 Replies

3. Programming

Problem with POSIX pthreads and virtual memory

Hi, i have this code... in order to test my problem... #include <stdio.h> #include <iostream> #include <pthread.h> static void* cliente(void *datos); int main() { pthread_attr_t tattr; int ret; size_t size = PTHREAD_STACK_MIN + 0x0100; ret =... (8 Replies)
Discussion started by: JEscola
8 Replies

4. UNIX for Dummies Questions & Answers

Weird character in between echo function

Hi All, Appreciate if anyone can help. I've a script where it does echo function like this while do FILE_ARG="cu0${w}_${FILE}_${DT}.av" ORACLE_ERROR=`grep "ORA-" ${FILE_ARG}` if ]; then Func_Log_Writer "Fail! ${FILE_ARG}\n" Func_Log_Writer "Error message:... (2 Replies)
Discussion started by: agathaeleanor
2 Replies

5. UNIX for Advanced & Expert Users

Really weird delete problem

Hi, I've Ubuntu 8.04, and it has some files that I just cannot delete. I've tried everything, inode, fsck etc. Here is what the ls -li outputs root@ubuntu:/home/luser/.local/share/Trash/files/junk# ls -l ls: cannot access TRUNK_: No such file or directory ls: cannot access 2006_output.mv:... (11 Replies)
Discussion started by: nitin
11 Replies

6. Infrastructure Monitoring

Weird dependency problem!

Hi, I want to install net-snmp-devel package but i have following dependecy problem. It's very odd, i don't get it. One of packages is depended on the other one, the other one is depended on the previous one as well. :S :S Could you help me please? Here are the steps: # ls -l total... (4 Replies)
Discussion started by: oduth
4 Replies

7. Shell Programming and Scripting

In bash getting weird output from function ?

My script- result="" times() { echo "inside the times function" result=8 echo "Inside function $result" return $result } result=$(times) echo "the value is "$? echo "the value of result $result" when I run I get this, why the value still remain 0. $ ./func the value is 0 the value... (5 Replies)
Discussion started by: boy18nj
5 Replies

8. Programming

Compilation problem with Posix Mes Q

Hi #include "training.h" #include <mqueue.h> // for posix mqs int main(int argc,char *argv) { int opt,flag; mqd_t msq; // msg q type flag=O_RDWR|O_CREAT; while((opt =getopt(argc,argv,"e")) != -1) { switch(opt) { case 'e': ... (4 Replies)
Discussion started by: kumaran_5555
4 Replies

9. UNIX for Advanced & Expert Users

Linkage of POSIX threads function calls

I wonder if someone knows what is the rationale behind linking function calls of the POSIX threads library at link-time vs. run-time. For example, if I create the following program: #include <pthread.h> void noop() { return; } int main() { pthread_self(); pthread_atfork(noop,... (1 Reply)
Discussion started by: jsimsa
1 Replies

10. Shell Programming and Scripting

Weird awk problem

Hi, I have a simple awk script: BEGIN{} { $a=$2-$1; print $a } END{if(NR==0){ print "0" } } to which I provide the following input 2.9 14 22.2 27 (4 Replies)
Discussion started by: jamie_123
4 Replies
UNDOCUMENTED(7) 					     Linux Programmer's Manual						   UNDOCUMENTED(7)

NAME
undocumented - No manpage for this program, utility or function. DESCRIPTION
This program, utility or function does not have a useful manpage. Before opening a bug to report this, please check with the Debian Bug Tracking System (BTS) at <http://bugs.debian.org/> if a bug has already been reported. If not, you can submit a wishlist bug if you want. If you are a competent and accurate writer and are willing to spend the time reading the source code and writing good manpages please write a better man page than this one. Please contact the package maintainer and copy man-pages@qa.debian.org in order to avoid several people working on the same manpage. Even if you are not an accurate writer, your input may be helpful. Writing manual pages is quite easy, the format is described in man(7). The most important and time-consuming task is to collect the information to be put in the new manpage. DIAGNOSTICS
It is possible that the man page for the command you specified is installed and that your manual page index caches are out of sync. You should try running mandb(8). Try the following options if you want more information: foo --help, foo -h, foo -? info foo whatis foo, apropos foo dpkg --listfiles foo, dpkg --search foo locate '*foo*' find / -name '*foo*' Additionally, check the directories /usr/share/doc/foo, /usr/lib/foo. The documentation might be in a package starting with the same name as the package the software belongs to, but ending with -doc or -docs. If you still didn't find the information you are looking for you might consider posting a call for help to debian-user@lists.debian.org. SEE ALSO
info(1), whatis(1), apropos(1), dpkg(8), locate(1), find(1), updatedb(1), undocumented(3), man(7), mandb(8), missing(7). Debian GNU/Linux August 24th, 2003 UNDOCUMENTED(7)
All times are GMT -4. The time now is 12:01 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy